我有这样的数据:
A=5 B=8 . C=8
A=4 . . C=4
A=8 . . C=3
我需要检查文件中的所有列,如果找到 letter=number
(例如 A=5),我只需要打印 number
。如果有缺失值 (.
) 就跳过它。
所以输出应该是:
5 8 . 8
4 . . 4
8 . . 3
我会使用 awk:
awk -v OFS="\t" '{split($0,arr2,"="); print arr2[2]}' infile.txt
最佳答案
这个 awk 单行代码与 gawk 一起工作:
awk -F'\\S*=' -v OFS="" '{$1=$1}7' file
5 8 . 8
4 . . 4
8 . . 3
思路是:通过设置FS
移除FOO=
关于arrays - 查找定界符并打印第二个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39701396/