我正在使用 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 语句中遗漏了什么?
我正在使用 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 语句中遗漏了什么?
干得好:
因为默认分隔符是空格/制表符。不是逗号。获取您的原始代码并添加
-F,
解决它。剥离它
{$0=$2" "$1}1
得到相同的结果。此答案使用
xsv
而不是awk
,但如果您有很多列,则很有用: