こんにちは、バイナリファイルのフルパスを含むテキストファイル(1.txt)があり、ファイルの各パスに対してコマンド(val_bin)を実行する必要があります。
1.txtの例:
/source/ed/dev/ed/ab/ed_len/comercial/bin/APP1.bin
/source/ed/dev/ed/ab/ed_lap/comercial/bin/APP2.bin
/source/ed/dev/ed/ab/ky_len/Industrial/bin/APP3.bin
...
コマンド例:val_bin - 1.txtの各レコードに対してhtmlファイルを生成します
。
val_bin -output <DESTINATION.html> -path </source/ed/dev/ed/ab/ed_len/comercial/bin/APP1.bin>
ここで、-outputには、各コマンドの後にhtmlファイルが生成されるパス(「DESTINATION」)が必要です。ここで、-output は name.bin.html を指定する必要があります (例: App1.bin.html)。
ここで、-pathは入力コマンドのフルパスでなければなりません。
出力例:(ここで/ tmpはhtmlファイルの宛先です。)
> ll /tmp
/tmp/APP1.bin.html
/tmp/APP2.bin.html
/tmp/APP3.bin.html
...
私はいくつかの異なるループオプションを試しましたが、今は純粋なawkを調べています。
答え1
スクリプトは必要ありません。
xargs -I NAME val_bin -output /tmp/$(basename NAME).html -path NAME < 1.txt
答え2
私はあなたがこれをしたいと思います:
dest_dir=/tmp
while IFS= read -r bin; do
if [[ ! -f "$bin" ]]; then
printf "No such file: %s\n" "$bin"
else
output="$dest_dir/$(basename "$bin").html"
val_bin -output "$output" -path "$bin"
fi
done < 1.txt