我需要合并目录中的文件,并在输出的每一行中包含目录,文件名和行号。我发现了许多有用的帖子,包括文件名和行号,但不包括目录名。 Grep -n获取行号,我看到一些查找命令可以获得其他部分,但我似乎无法将它们全部拉到一起。 (我正在使用Ubuntu进行所有数据处理。)
想象一下目录中名为“8”的两个文件。 (我拥有的数据中的每个目录都是一个数字。数据以这种方式提供。)
file1.txt
约翰·保罗
乔治
林戈
file2.txt
米克
克普比尔
布赖恩
查理
输出应如下所示:
8:FILE1.TXT:1:约翰
8:FILE1.TXT:2:保
8:FILE1.TXT:3:乔治
8:FILE1.TXT:4:林檎
8:FILE2.TXT:1:米克
8:FILE2.TXT:2:
克普8:FILE2.TXT:3:比尔
8:FILE2.TXT: 4:布莱恩
8:FILE2.TXT:5:查理
分隔符不一定是冒号。标签可以正常工作。
非常感谢!
答案 0 :(得分:1)
如果只有一个目录级别,你可以尝试这样的事情。我们进入每个目录,用它的编号打印每一行,然后用sed将目录名称附加到前面:
$ for x in `ls`; do
(cd $x ; grep -n . *) | sed -e 's/^/'$x:'/g'
done
1:c.txt:2:B
1:c.txt:3:C
2:a.txt:1:A
2:a.txt:2:B