Linux如何批量提取多个文件中的某一行。

每个文件都含有TXT,而且含TXT的这一行是TXT:1,TXT:2,TXT:3……如何批量把含TXT的这一行提取出来?而后将1,2,3等等这些数据从上到下列出来?就是fi... 每个文件都含有TXT,而且含TXT的这一行是TXT:1,TXT:2, TXT:3……
如何批量把含TXT的这一行提取出来?而后将1,2,3等等这些数据从上到下列出来?
就是file0有txt:1, file2有txt:2, file4有txt:3……一直到file400有txt:200,
如何将每个文件含有txt的一行提取出来,然后前面对应上文件名,然后再保存到一个文件里面?
形成输出文件是
file0 txt:1
file2 txt:2
file4 txt:3
……
file400 txt:200
展开
 我来答
options_mark
2013-05-19 · TA获得超过168个赞
知道小有建树答主
回答量:146
采纳率:0%
帮助的人:133万
展开全部

实例文件:

[root@s08 testdir]# cat file1
abc1
txt
[root@s08 testdir]# cat file2
abc2
txt
[root@s08 testdir]# cat file3
abc3
cdf
txt
[root@s08 testdir]#


过滤所需内容: -H 打印文件名  -n 打印行号

[root@s08 testdir]# grep -Hn 'txt' file* > result.txt


查看结果:

[root@s08 testdir]# cat result.txt
file1:2:txt
file2:2:txt
file3:3:txt
[root@s08 testdir]#


看一下,是否你所需的结果。

cndonger
2013-05-19 · TA获得超过801个赞
知道小有建树答主
回答量:1425
采纳率:0%
帮助的人:936万
展开全部
你举个简明直观的例子嘛。
用grep配合 awk可以很好处理的

#!/bin/bash
#*表示要查找的文件
for filename in *
do
grep TXT $filename|gawk '{if($0!="") print "'$filename'",$0}' >>结果
done
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ppkingpping
2013-05-19 · TA获得超过894个赞
知道小有建树答主
回答量:705
采纳率:0%
帮助的人:618万
展开全部
grep TXT filename | xargs sed -n "p"
更多追问追答
追问
有上百个文件。。。如何提取后保存到一个文件里面呢?
追答
重定向:
grep TXT filename | xargs sed -n "p" >file
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式