如何用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 怎么办?
展开
 我来答
luneng8183
推荐于2016-11-25 · TA获得超过902个赞
知道小有建树答主
回答量:606
采纳率:100%
帮助的人:525万
展开全部
#!/bin/bash

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

如果把上述代码存成a.sh,你输入a.sh 1就输出第一行,a.sh 2就是输出第二行,依次类推。希望对你有帮助。
ama2000
2011-12-24 · TA获得超过203个赞
知道答主
回答量:17
采纳率:0%
帮助的人:8.7万
展开全部
请再补充问题,你的过滤条件是什么??
如果是 aaa 到 bbb 之间的所有行的话可以用 // , // 这种特殊的 Pattern组合
awk '/aaa/,/bbb/ print $0' test.list
如果test.list中 第一次出现aaa的是第N 行, 第一次出现bbb的是第M行, 那么上述脚本就会输出第N到第M行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友05a5af4d1
2011-12-24 · 超过19用户采纳过TA的回答
知道答主
回答量:86
采纳率:0%
帮助的人:68.4万
展开全部
判断NR啊。
awk '{if(NR==1) print $1|' test.list 结果:aaa
awk '{if(NR==2) print $1|' test.list 结果:bbb
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
己闻楣Sx
2011-12-15 · TA获得超过1937个赞
知道大有可为答主
回答量:1057
采纳率:93%
帮助的人:940万
展开全部
你的写法是输出第一列,没问题,而你的需求是输出多列,但你的例子文件是多行一列,如上纠结,感觉问题没有描述或认识清楚,请补充......
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小米飞猫
2011-12-15 · 专注于IT监控领域技术
小米飞猫
采纳数:1653 获赞数:4811

向TA提问 私信TA
展开全部
awk '{print $(NR-1)}' test.list
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式