早教吧 育儿知识 作业答案 考试题库 百科 知识分享

Linux如何批量提取多个文件中的某一行.每个文件都含有TXT,而且含TXT的这一行是TXT:1,TXT:2,TXT:3……如何批量把含TXT的这一行提取出来?而后将1,2,3等等这些数据从上到下列出来?就是file0有txt:

题目详情
Linux如何批量提取多个文件中的某一行.
每个文件都含有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
▼优质解答
答案和解析

实例文件:

[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]#


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