假设我有一个文件,我想在其中awk
按照第一列的说明同时打印不同的命令,而又不会弄乱原始文件(因为两次单独打印会发生这种情况):
文件:
End 1st 2nd 3rd
Fin 1st 2nd 3rd
我想将以下命令组合成一个单行:
awk '$1 ~ /^E/ {print $2}'
awk '$1 ~ /^F/ {print $3}'
要获得以下输出:
End 1st
Fin 2nd
编辑我的意思是说“整理原始文件”:
档案1:
E1 NAME1 LASTNAME1
FA 22 1992 #age, year
FC UK London #country, city
FJ IT HP #job, company
E2 NAME2 LASTNAME2
FA 25 1989
FC CH Geneva
FJ CS SIB
现在,如果我运行两个单独的awk打印,将无法将文件3中的信息与文件2的名称相匹配(特别是如果^F
字段数不是相同的数字):
awk '$1 ~ /^E/ {print $2}' File 1 > File 2
输出(文件2):
NAME1
NAME2
awk '$1 ~ /^F/ {print $3}' File 1 > File 3
输出(文件3):
1992
London
HP
1989
Geneva
SIB
但是,如果我加入他们(如答案中所建议),我将可以拥有这样的东西:
预期产量:
NAME1
1992
London
HP
NAME2
1989
Geneva
SIB
awk '$1 ~ /^E|^F/ {if ($1 == "End") print $1" "$2; if ($1 == "Fin") print $1" "$3}'
或者
awk '/^End/{print $1" "$2}/^Fin/{print $1" "$3}'
(感谢People)
应该管用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句