テキストファイルの各行をコマンド引数に解析する方法は?

テキストファイルの各行をコマンド引数に解析する方法は?

.txt私はファイル名を引数として使用してファイルを1行ずつ読み込み、各行をコマンドに渡すスクリプトを作成しています。たとえば、command --option "LINE 1"thencommand --option "LINE 2"などを実行します。コマンドの出力は他のファイルに書き込まれます。どうすればいいですか?どこから始めるべきかわかりません。

ベストアンサー1

別のオプションはですxargs

GNUの使用xargs:

xargs -a file -I{} -d'\n' command --option {} other args

{}テキスト行のプレースホルダーです。

他には一般的にはありxargsませんが、一部にはNULで区切られた入力があります。これにより、次のことができます。-a-d-0

< file tr '\n' '\0' | xargs -0 -I{} command --option {} other args

Unix互換システム(-IPOSIXではオプション、UNIX互換システムのみ)では入力を前処理する必要があります。引用する予想される形式の行xargs:

< file sed 's/"/"\\""/g;s/.*/"&"/' |
  xargs -E '' -I{} command --option {} other args

ただし、一部のxargs実装では、引数の最大サイズに対する制限は非常に低いです(たとえば、Unix仕様で許可されている最小値であるSolarisでは255)。

おすすめ記事