Shell 将.csv文件从“我的电脑”中的某个位置传输到Unix环境
请为我解释下面的shell脚本,因为它不起作用Shell 将.csv文件从“我的电脑”中的某个位置传输到Unix环境,shell,Shell,请为我解释下面的shell脚本,因为它不起作用 sed "s/,/|/g" $csvFile |awk -F "|" '{ print $1"|"$2"|"$3"|"$4"|"$5"|"}' > dataFile.txt 通常,无论环境如何,CSV文件都是CSV文件。CSV仅代表“逗号分隔值” 关于你的命令,第一部分 sed "s/,/|/g" $csvFile 从变量csvFile中获取文件名,并用管道(|)替换逗号 第二部分, awk -F "|" '{ print $1"|"$2
sed "s/,/|/g" $csvFile |awk -F "|" '{ print $1"|"$2"|"$3"|"$4"|"$5"|"}' > dataFile.txt
通常,无论环境如何,CSV文件都是CSV文件。CSV仅代表“逗号分隔值” 关于你的命令,第一部分
sed "s/,/|/g" $csvFile
从变量csvFile中获取文件名,并用管道(|)替换逗号
第二部分,
awk -F "|" '{ print $1"|"$2"|"$3"|"$4"|"$5"|"}'
在列中获取“sed”命令的输出,并在它们之间使用管道进行打印
第三部分
> dataFile.txt
将命令的输出放入名为dataFile.txt的文本文件中
要调试该命令,我们需要查看您的输入文件数据以及您试图编写的内容。命令as is是多余的,但是如果没有看到您的输入,我们不知道如何使其工作(并改进)。您实际上不需要
sed
hhere。您可以直接将awk与不同的字段分隔符一起使用:
awk -F ',' '{print $1, $2, $3, $4, $5 OFS}' OFS='|' "$csvFile" > dataFile.txt