每个文件都含有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
实例文件:
过滤所需内容: -H 打印文件名 -n 打印行号
[root@s08 testdir]# grep -Hn 'txt' file* > result.txt查看结果:
[root@s08 testdir]# cat result.txt看一下,是否你所需的结果。
有上百个文件。。。如何提取后保存到一个文件里面呢?
追答重定向:
grep TXT filename | xargs sed -n "p" >file
不对哇。。显示无效的sed命令。。。
而且我想将提取后的文件每一行前面加上对应的文件名。。
就是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
误解了你的题意,看看下面的代码是否满足你:
#!/bin/sh