运行脚本时将文件名作为输入

运行脚本时将文件名作为输入

我创建了一个 shell 脚本,它从 csv 文件 A (INPUT.csv) 读取,然后从数据创建临时文件,执行一些操作并创建另一个 csv 文件 B。最后它合并两个文件 INPUT.csv 和 B一起生成 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

相关内容