2
ファイルのリストを含むファイルがあり、各ファイルに対して2つのコマンドを実行したい。 files.txtのbash(xargs?)のファイルリストで複数のコマンドを実行する方法
内容:
file1
file2
file3
私は、各ファイルに対して実行するコマンドは、(例えば)ls -s
とdu
です。
私は、出力は次のようになってしまうしたい:私はbashスクリプトを使用してこれを実行する方法を知っている
<ls size> <du size> file1
<ls size> <du size> file2
<ls size> <du size> file3
が、簡単に1行にこれを行う方法があり、プロセス置換を使用しますか、何か?
は、私はこのような何かを行うことができると思ったが、それはうまくいきませんでした:これらのエラーを思い付いたcat files.txt | tr '\n' '\0' | xargs -0 -I{} cat <(du {}) <(ls -s {})
:
du: cannot access `{}': No such file or directory
ls: cannot access {}: No such file or directory
はこれを行う方法はありますか?
感謝を! OK、私のフォローアップの質問は、 '' du''に測定されたサイズの行の前にだけ接頭辞を付けることです。通常の方法は 'du |カット-f1 | tr --delete '\ n''ですが、一重引用符を使用することはできません.shコマンドは一重引用符を使用して引用されるためです。 'すべて'の部分を代用する方法はありますか? –
localhost
二重引用符で囲むことができます。 – janos