ril*_*ley 23 text-processing cut columns
我的文本文件没有分隔符来指定分隔符只是空格,我如何切出第 2 列以输出文件,
39 207 City and County of San Francisc REJECTED MAT = 0
78 412 Cases and materials on corporat REJECTED MAT = 0
82 431 The preparation of contracts an REJECTED MAT = 0
Run Code Online (Sandbox Code Playgroud)
所以我需要的输出是
207
412
432
Run Code Online (Sandbox Code Playgroud)
jim*_*mij 19
最简单的方法awk
是将多个连续空格视为一个空格,因此
awk '{print $2}' file
Run Code Online (Sandbox Code Playgroud)
印刷
207
412
431
Run Code Online (Sandbox Code Playgroud)
但显然有很多很多其他工具可以完成这项工作,甚至不是为这样的任务设计的grep
:
grep -Po '^[^ ]+[ ]+\K[^ ]+' file
Run Code Online (Sandbox Code Playgroud)
小智 15
使用管道挤压额外的空格并将您的数据(例如, in columns.txt
)发送到cut
:
tr -s ' ' < columns.txt | cut -d" " -f2
Run Code Online (Sandbox Code Playgroud)
在您提供的示例数据中,单个空格分隔符将您想要的数据放在字段 5 中。但是,如果第一列是数字并且有前导空格以使其向右对齐,则需要调整字段编号。用tr -s ' '
first压缩空格避免了处理这个问题。
将该输出发送到另一个文件使用重定向:
tr -s ' ' < columns.txt | cut -d" " -f2 > field2.txt
Run Code Online (Sandbox Code Playgroud)
使用 awk 命令,您可以执行以下操作,它会自动识别您所关注的字段,因为那里有数据(?)我需要了解有关 awk 的更多信息。
awk -F' ' '{print $2}' columns.txt
Run Code Online (Sandbox Code Playgroud)