Shell 将.csv文件从“我的电脑”中的某个位置传输到Unix环境

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

请为我解释下面的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"|"$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