【问题标题】:read file having columns in bash script读取在 bash 脚本中有列的文件
【发布时间】:2017-02-24 11:35:56
【问题描述】:

如何读取在 bash 脚本中有列的文件(文本或 csv)? 我用过 awk。

awk '{print $1,$2,$3}' file_name.txt 

但它不起作用。

还有其他方法吗?

【问题讨论】:

  • 您的文件看起来如何?逗号分隔或制表符分隔
  • 您的行假定 file_name.txt 包含空格(制表符、空格)作为分隔符。如果您的文件包含“,”,那么您需要告诉 awk 使用“,”作为分隔符。您可以使用 -F 选项执行此操作:awk -F, '{print ...

标签: bash shell


【解决方案1】:

一般情况下,您会将 IFS 修改与 while 和 read 结合使用,如

... | while IFS=$';' read a b c; do ... done

【讨论】:

  • 这里不需要$IFS 设置为;,它们仅在定义像\n\t 这样的ANSI 转义序列时使用
  • @Inian 你确定要分号吗?我刚刚在没有和使用$ 的情况下进行了测试,第一个在第二个的地方不起作用。哼中间语法IFS=';'
  • 我也是这个意思,IFS=';'应该足够了
  • @Inian 没有必要,但在这里展示更完整的语法有助于记住如何管理您提到的序列
猜你喜欢
  • 2014-10-26
  • 2019-08-03
  • 1970-01-01
  • 2022-05-30
  • 2011-06-28
  • 1970-01-01
  • 2020-06-18
  • 1970-01-01
  • 2014-10-28
相关资源
最近更新 更多