スクリプトがあります。myScript
。
2つのパラメータが必要です。myScript arg1 arg2
。
3つの引数の集合があるとしましょう。
argA1 argB1
argA2 argB2
argA3 argB3
各行をmyScriptにパイプする方法はありますか? xargsを使用してファイルにパラメータセットを含めたいです。何を調べるべきか分からない。
したがって、以下の偽の例のようなコマンドを実行します。
cat myFile | xargs > myScript
他のスクリプトは必要なく、コマンドラインからのコマンドだけが必要です。
ベストアンサー1
のみ:
xargs -l1 <myFile myScript
-l1
各入力行に対して一度実行し、そのxargs
行の単語を別々の引数として渡すように指示します。myScript
1
l
1
l
の場合、xargs
単語はスペースで区切られ、引用符を使用すると、単語内にスペース(または改行)を含めることができます。ただし、引用はほとんどのシェルのようにxargs
サポートされていますが、解析はBourneなどのシェルの解析とは異なります。特にnoとonlyはどちらもバックスラッシュを処理せず、改行だけをエスケープできます。"..."
'...'
\
"..."
'...'
\
たとえば、次のものを含めるmyFile
ことができます。
word1.1 word1.2
"word 2.1" 'word 2.2'
"word'3.1" 'word"3.2'
'word"'"4'1" word\"4\'2
'word '\
5.1 "word "\
5.2
そして
xargs -l1 <myFile printf 'First word: "%s", second word: "%s"\n'
生産予定:
First word: "word1.1", second word: "word1.2"
First word: "word 2.1", second word: "word 2.2"
First word: "word'3.1", second word: "word"3.2"
First word: "word"4'1", second word: "word"4'2"
First word: "word
5.1", second word: "word
5.2"
GNU実装を使用すると、xargs
次のように改善できます。
xargs -l1 -r -a myFile myScript
これの利点は、stdinが空myScript
の場合はmyFile
実行されず、単独で残すことができることです。