解凍したい非常に大きなzipファイル(〜10 GB)があり、その結果は2つのコマンドで渡される必要があります。 2つの後続のコマンドの結果をファイルに追加する必要があります。
現在私は走っています
unzip -p bigFile.zip | head -n 1 >> output.txt
unzip -p bigFile.zip | grep -v 'skipLine' >> output.txt
これは約100万行を提供します。もう一行にしたいです。使い始めtee
た
unzip -p bigFile.zip | tee >(head -n 1 >> output.txt) >(grep -v 'skipLine'
>> output.txt)
ただし、output.txt
ファイルには51行しか含まれておらず、最後の行は完全ではありません。また、後者のコマンドは、私が望んでいない結果を端末に印刷します。
私も試しました
unzip -p bigFile.zip | tee >(head -n 1 >> output.txt) | grep -v 'skipLine'
>> output.txt
しかし、残念ながらこれも機能しません。
どんな助けでも大変感謝します!を使用する必要はありません。ウィジェットの出力をandコマンドにtee
渡すことができる限り、他のコマンドはうまく機能します。unzip
head
grep
編集する:head
そして、コマンドの出力を「結合」してから渡すことができれば、はるかにgrep
良いでしょうzip
。可能ですか?
ベストアンサー1
最初の行を取得して印刷し、grepが残りの部分を使用できるようにするシェルスクリプトを解凍してパイプすることができます。
unzip -p bigFile.zip | {
IFS= read -r header # consume the first line, verbatim
printf "%s\n" "$header"
grep -v 'skipLine'
} >> output.txt
ブロックから印刷された内容はすべて出力ファイルに追加されます。