请为我解释下面的shell脚本,因为它不起作用。将.csv文件从PC中的某个位置传输到Unix环境
sed "s/,/|/g" $csvFile |awk -F "|" '{ print $1"|"$2"|"$3"|"$4"|"$5"|"}' > dataFile.txt
请为我解释下面的shell脚本,因为它不起作用。将.csv文件从PC中的某个位置传输到Unix环境
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的文本文件。
要调试命令,我们需要查看输入文件数据以及您正在编写的内容。这个命令是多余的,但没有看到你的输入,我们不知道如何让它工作(和改进)。
你真的不需要sed
这里。您可以直接使用不同字段分隔符的awk:
awk -F ',' '{print $1, $2, $3, $4, $5 OFS}' OFS='|' "$csvFile" > dataFile.txt