私はしばしば結果ファイルfind
やfd
次のようなものを編集したいと思います。
fd myfile | my_script
私のスクリプトでは、vim
STDINのすべてのファイルがパラメータとして実行されます(例:)vim "myfile1" "myfile2"
。これらのパラメータにはスペースやその他の特殊文字を含めることができるため、個別に二重引用符で囲む必要があります。
私は以下を試しました:
files=""
while IFS=$'\n' read -r line; do
files="$files $line"
done
file $files
例は、file
結果ファイル名を引数として使用して実行する必要があります。ファイル名の空白が原因で問題が発生したことを除いて、やや機能し、さまざまな方法で変数を参照しようとしましたが、成功しませんでした。
改行で区切られた入力を空白の引数として使用してコマンドを実行するには?
答え1
すでに述べたように、bash
この配列を使用してください。
files=()
while IFS=$'\n' read -r line; do
files+=( "$line" )
done
file "${files[@]}"
xargs
改行区切り文字を使用して、動作が似ている必要があるかどうかを確認することもできます。