複数の引数を持つxargs
2023-08-13 05:46:41
質問
ソース入力があります。 input.txt
a.txt
b.txt
c.txt
これらの入力を以下のようにプログラムに反映させたいと思います。
my-program --file=a.txt --file=b.txt --file=c.txt
ということで、試しに xargs を使ってみましたが、うまくいきません。
cat input.txt | xargs -i echo "my-program --file"{}
これは
my-program --file=a.txt
my-program --file=b.txt
my-program --file=c.txt
しかし、私は
my-program --file=a.txt --file=b.txt --file=c.txt
何か思い当たることは?
どのように解決するのですか?
これまで紹介したどの解決策も、スペースを含むファイル名を正しく処理することはできません。ファイル名に ' や " が含まれていると、失敗するものさえあります。入力ファイルがユーザーによって生成される場合、驚くようなファイル名に対して準備する必要があります。
GNU パラレル はこれらのファイル名をうまく処理し、(少なくとも)3つの異なる解決策を与えてくれます。もしあなたのプログラムが 3 つの引数を取り、3 つしか引数を取らないのであれば、これは動作するでしょう。
(echo a1.txt; echo b1.txt; echo c1.txt;
echo a2.txt; echo b2.txt; echo c2.txt;) |
parallel -N 3 my-program --file={1} --file={2} --file={3}
または
(echo a1.txt; echo b1.txt; echo c1.txt;
echo a2.txt; echo b2.txt; echo c2.txt;) |
parallel -X -N 3 my-program --file={}
しかし、あなたのプログラムがコマンドラインに収まるだけの引数を取る場合。
(echo a1.txt; echo b1.txt; echo c1.txt;
echo d1.txt; echo e1.txt; echo f1.txt;) |
parallel -X my-program --file={}
イントロビデオで詳細をご覧ください。 http://www.youtube.com/watch?v=OpaiGYxkSuQ
関連
-
Linux Mintで入力メソッドを削除する方法は?Linux Mintで冗長な入力メソッドを削除するためのヒント
-
[解決済み] Node.jsのプログラムにコマンドライン引数を渡すにはどうしたらいいですか?
-
[解決済み] Bashでコマンドライン引数を解析するには?
-
[解決済み] エクスポートあり/なしの変数の定義
-
[解決済み] bashシェルスクリプトの全引数を伝搬させる
-
[解決済み] 整数の合計を1行に1つずつ表示するシェルコマンド?
-
[解決済み] bashで "cat << EOF "はどのように動作するのですか?
-
[解決済み】rakeタスクにコマンドライン引数を渡す方法
-
[解決済み】Bashスクリプトに渡された引数の数を確認する
-
[解決済み】xargsで複数のコマンドを実行する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
centos7 インストール クリックハウスとセット ユーザー名 パスワード ケース 詳細
-
rsyncとinotfiyの組み合わせでリアルタイムバックアップ問題を実現
-
Linux Mintで入力メソッドを削除する方法は?Linux Mintで冗長な入力メソッドを削除するためのヒント
-
LinuxでJenkinsプラグインのインストールが遅い場合の解決策
-
TclError: 表示名がなく、$DISPLAY環境変数もない。
-
Process.waitFor()の戻り値の意味するところ
-
[解決済み] Linuxでファイルをシンボリックリンクするには?[クローズド]
-
[解決済み] find .コマンドでディレクトリを除外する方法
-
[解決済み] 出力をファイルや標準出力にリダイレクトする方法
-
[解決済み] Linux/Unixで$PATHを永久に設定する方法 [終了しました].