Pau*_*ce. 146
要打印第二行:
awk 'FNR == 2 {print}'
Run Code Online (Sandbox Code Playgroud)
要打印第二个字段:
awk '{print $2}'
Run Code Online (Sandbox Code Playgroud)
要打印第五行的第三个字段:
awk 'FNR == 5 {print $3}'
Run Code Online (Sandbox Code Playgroud)
这是一个带有标题行和(冗余)字段描述的示例:
awk 'BEGIN {print "Name\t\tAge"} FNR == 5 {print "Name: "$3"\tAge: "$2}'
Run Code Online (Sandbox Code Playgroud)
顺便说一句,有更好的方法来对齐列而不是"\ t\t".
使用exit如你打印所需的记录,如果没有理由来处理整个文件尽快停止:
awk 'FNR == 2 {print; exit}'
Run Code Online (Sandbox Code Playgroud)
Hai*_* Vu 26
要使用特定字符串打印列,请使用//搜索模式.例如,如果要查找包含abc的第二列:
awk '$2 ~ /abc/'
Run Code Online (Sandbox Code Playgroud)
...如果您只想打印特定列:
awk '$2 ~ /abc/ { print $3 }'
Run Code Online (Sandbox Code Playgroud)
......以及特定的行号:
awk '$2 ~ /abc/ && FNR == 5 { print $3 }'
Run Code Online (Sandbox Code Playgroud)
gle*_*man 22
要扩展Dennis的答案,请使用awk's -v选项传递i和j值:
# print the j'th field of the i'th line
awk -v i=5 -v j=3 'FNR == i {print $j}'
Run Code Online (Sandbox Code Playgroud)