ファイル名を入力として使用してスクリプトを実行する

ファイル名を入力として使用してスクリプトを実行する

csvファイルA(INPUT.csv)から読み取るシェルスクリプトを作成し、データから一時ファイルを作成し、いくつかの操作を実行して、別のcsvファイルBを作成します。最後に、INPUT.csvとBの2つのファイルをマージしてFinalOutput.csvを生成します。

このスクリプトの制限は、ファイル名が異なる場合はファイル名を変更するか、スクリプトを変更する必要があることです。それ以外の場合、ファイルを読み取ることができません。ファイル名に関係なく、FinalOutput.csvを処理して生成するように動的に作成するにはどうすればよいですか?

サンプルスクリプト -

#!/bin/bash
awk -F, '{print $2}' INPUT.csv > FileB.csv
{
Operations on File B
}
paste -d "," INPUT.csv FileB.csv > FinalOutput.csv

exit 0

答え1

入力ファイルのファイル名をパラメータとしてスクリプトを実行します。

その後、次のようにスクリプトを実行できます。

./script.sh INPUT.csv FileB.csv

スクリプト内で、次の変数と"$1"参照パラメータを使用します"$2"

#!/bin/bash
awk -F, '{print $2}' "$1" > "$2"
{
# Operations on File B
}
paste -d "," "$1" "$2" > FinalOutput.csv

exit 0

関連情報