2017-03-07 9 views
-1

私はここで何か愚かなことをしていますが、この作業をすることはできません。TARにgrep出力

私は-T引数が投入するファイルのリストを指定します

tar\: abcdefg\t\1488877199\Link\t\thttps\\\://abcdefg//724974226928ars\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t1Cannot 

stat\: No such file or directory: Cannot stat: No such file or directory 
    tar: Exiting with failure status due to previous errors 
+0

のtest.txtはおそらく存在しません。有効なファイル名を使用しようとしています。 –

+0

@ afr0ck test.txtは存在していましたが、エラーメッセージ(上記のように更新されました)のgrep出力が表示されます – rkj

+1

[tddファイルをstdinから作成する]の可能な複製(http://stackoverflow.com/q/28238945/1255289 ) – miken32

答えて

1

grep -a -E '*abcdefg*|*123*|hi' test.txt | tar -czvf test.rar.gz -T - 

コマンドは以下のエラーで失敗することはgrepの出力のうち、TARファイルを作成&ファイルをgrepする必要がありますアーカイブ。それは実際のデータではなく、STDINで提供しようとしているものです。 xまたはTモードで

-Tファイル名

、tarはファイル名から抽出される名前のリストを読み込みます。 cモードでは、tarはfilenameからアーカイブする名前を読み込みます。特別な名前 " - C"を単独で使用すると、現在のディレクトリが次の行に指定されたディレクトリに変更されます。 --nullが指定されていない限り、名前は改行で終了します。 --nullは `` -C ''を含む行の特別な処理も無効にすることに注意してください。

いずれにしても、you can't archive from STDIN。最初に中間ファイルにデータを置く必要があります。

grep -a -E '*abcdefg*|*123*|hi' test.txt > tempfile 
tar -czvf test.tar.gz tempfile 

それとも、ただ一人でgzipを使用します。

grep -a -E '*abcdefg*|*123*|hi' test.txt | gzip > test.gz 
+0

説明をありがとう、今私は問題を知っている。 – rkj

1

をあなたはこのような何かを試すことができます -

grep -a -E '*abcdefg*|*123*|hi' test.txt > ff && tar -czvf test.rar.gz ff 
関連する問題