s1
「、」で区切られた数値のリストを出力するスクリプトがあります1,2,3,4
。ここで、これらの数値をs2
引数としてスクリプトに指定し、s2がそれぞれで実行され、その結果が別々の行に出力されるようにします。たとえば、s2が数値を2倍する場合、これは私が探している結果です。
2
4
6
8
私が今やっていることは:
s1 | xargs -d "," | xargs -n1 s2
でも馬鹿なやり方でやっているような気がします!だから私の質問は:
それを行う適切な方法は何ですか?
私の解決策の私の問題は、xargsを2回呼び出し、入力を2回反復することです。これはもちろん、パフォーマンスの観点から見ると妥当ではありません。答えxargs -d "," -n1
はいいようですが、それが1回だけ繰り返されるかどうかはわかりません。もしそうなら、あなたの答えでそれを確認してください、そして私はそれを受け入れます。ちなみに、Perlはまだ2度繰り返されており、Perlが多くのシステムに存在しない可能性があるため、Perlは使用しません。
s1 | xargs -d "," -n1 s2