複数のアーカイブに保存する必要があるいくつかのディレクトリのコンテンツファイルを作成したいと思いますtar
。私は使う
du --all currentdir >> contents.list
そのような理由で。
ファイルに書き込む前に、tar
出力の各行にアーカイブ名を追加したいと思います。du
私はこれを行うことができると思います:
du --all currentdir | while read i; do echo "$i mytar" >> contents.list ; done
より簡単な解決策があると思いますが、bashスクリプトは初めてです。
ベストアンサー1
このためにwhileループを使用すると、非常に遅くなります。各行の末尾に静的文字列を追加するには、次のようにしますsed
。
du --all | sed 's/$/ myArchive.tar/'
または、変数にアーカイブ名を含めたい場合(例$i
:):
du --all | sed "s/$/ $i/"
s/old/new/
old
最初の項目を置き換える sed の代替演算子ですnew
。この記号は$
行の終わりと一致するため、各行の終わりにのみs/$/foo/
追加されます。foo