
如何用awk截取每一行的各个字段
比如说有一个文件test.list内容有:aaabbbccc我用awk'{print$1}'test.list显示aaabbbccc,我要只显示aaa或者bbb怎么办?...
比如说有一个文件test.list 内容有 :
aaa
bbb
ccc
我用 awk '{print $1}' test.list 显示 aaa bbb ccc ,我要只显示aaa或者bbb 怎么办? 展开
aaa
bbb
ccc
我用 awk '{print $1}' test.list 显示 aaa bbb ccc ,我要只显示aaa或者bbb 怎么办? 展开
6个回答
展开全部
#!/bin/bash
awk -v"line=$1" '{
if(NR==line)
print
}' test.list
如果把上述代码存成a.sh,你输入a.sh 1就输出第一行,a.sh 2就是输出第二行,依次类推。希望对你有帮助。
awk -v"line=$1" '{
if(NR==line)
}' test.list
如果把上述代码存成a.sh,你输入a.sh 1就输出第一行,a.sh 2就是输出第二行,依次类推。希望对你有帮助。
展开全部
请再补充问题,你的过滤条件是什么??
如果是 aaa 到 bbb 之间的所有行的话可以用 // , // 这种特殊的 Pattern组合
awk '/aaa/,/bbb/ print $0' test.list
如果test.list中 第一次出现aaa的是第N 行, 第一次出现bbb的是第M行, 那么上述脚本就会输出第N到第M行
如果是 aaa 到 bbb 之间的所有行的话可以用 // , // 这种特殊的 Pattern组合
awk '/aaa/,/bbb/ print $0' test.list
如果test.list中 第一次出现aaa的是第N 行, 第一次出现bbb的是第M行, 那么上述脚本就会输出第N到第M行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
判断NR啊。
awk '{if(NR==1) print $1|' test.list 结果:aaa
awk '{if(NR==2) print $1|' test.list 结果:bbb
awk '{if(NR==1) print $1|' test.list 结果:aaa
awk '{if(NR==2) print $1|' test.list 结果:bbb
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的写法是输出第一列,没问题,而你的需求是输出多列,但你的例子文件是多行一列,如上纠结,感觉问题没有描述或认识清楚,请补充......
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
awk '{print $(NR-1)}' test.list
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询