0

多くのファイルを 1 つの「大きな」ファイルにマージした後、ファイル名とパスを含めるにはどうすればよいですか?

たとえば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 に答える