如何用awk截取每一行的各个字段

2025-03-13 11:19:04
推荐回答(5个)
回答1:

#!/bin/bash

awk -v"line=$1" '{
if(NR==line)
print
}' test.list

如果把上述代码存成a.sh,你输入a.sh 1就输出第一行,a.sh 2就是输出第二行,依次类推。希望对你有帮助。

回答2:

请再补充问题,你的过滤条件是什么??
如果是 aaa 到 bbb 之间的所有行的话可以用 // , // 这种特殊的 Pattern组合
awk '/aaa/,/bbb/ print $0' test.list
如果test.list中 第一次出现aaa的是第N 行, 第一次出现bbb的是第M行, 那么上述脚本就会输出第N到第M行

回答3:

判断NR啊。
awk '{if(NR==1) print $1|' test.list 结果:aaa
awk '{if(NR==2) print $1|' test.list 结果:bbb

回答4:

你的写法是输出第一列,没问题,而你的需求是输出多列,但你的例子文件是多行一列,如上纠结,感觉问题没有描述或认识清楚,请补充......

回答5:

awk '{print $(NR-1)}' test.list