Shell-Script

交換 CSV 文件中的第一列和第二列

  • February 26, 2021

我正在使用 bash。我有一個 CSV 文件,其中包含兩列數據,大致如下所示

num_logins,day
253,2016-07-01
127,2016-07-02

我想交換第一列和第二列(使日期列成為第一列)。所以我嘗試了這個

awk ' { t = $1; $1 = $2; $2 = t; print; } ' /tmp/2016_logins.csv 

但是,結果輸出相同。為了讓事情正確切換,我在上面的 awk 語句中遺漏了什麼?

幹得好:

awk -F, '{ print $2 "," $1 }' sampleData.csv 

因為預設分隔符是空格/製表符。不是逗號。獲取您的原始程式碼並添加-F,解決它。

$ awk -F, ' { t = $1; $1 = $2; $2 = t; print; } ' /tmp/2016_logins.csv
day num_logins
2016-07-01  253
2016-07-02  127
$

剝離它{$0=$2" "$1}1得到相同的結果。

$ awk -F, '{$0=$2" "$1}1' /tmp/2016_logins.csv
day num_logins
2016-07-01  253
2016-07-02  127
$

引用自:https://unix.stackexchange.com/questions/460890