請爲我解釋下面的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