0

将多个文件合并为一个“大”文件后,如何包含文件名和路径?

例如,我TestMessage1.txt to TestMessage5.txt在目录中有文件/temp/Errors/。这些文件包含其中的内容Hello, this is test message 1 to Hello, this is test message 5

将 TestMessage1.txt 合并到 TestMessage5.txt 非常简单,使用cat * > outputfile.txt

在输出文件中我得到:

Hello, this is test message 1
Hello, this is test message 2
Hello, this is test message 3
Hello, this is test message 4
Hello, this is test message 5

如何让我的输出文件看起来像:

/temp/Errors/TestMessage1 : Hello, this is test message 1
/temp/Errors/TestMessage2 : Hello, this is test message 2
/temp/Errors/TestMessage3 : Hello, this is test message 3
/temp/Errors/TestMessage4 : Hello, this is test message 4
/temp/Errors/TestMessage5 : Hello, this is test message 5

提前致谢

4

2 回答 2

4

使用grep

grep "" * > outputfile.txt

如果您想要文件的完整路径,请使用:

grep "" /temp/Errors/* > outputfile.txt

如果你想,代替:,管道到sed

grep "" /temp/Errors/* | sed 's/:/,/'> outputfile.txt
于 2013-06-07T09:55:23.827 回答
1

这可以通过(bash)脚本来完成:

for i in * ; do
    while read line ; do
        full=$PWD/$i
        echo "$full , $line"
    done < $i
done

该解决方案的优点是它比 grep 更灵活。

编辑多行,逗号而不是分号和完整路径)

于 2013-06-07T09:56:36.723 回答