Dav*_*ave 6 awk shell-script text-processing csv
我正在使用 bash。我有一个包含两列数据的 CSV 文件,大致如下所示
num_logins,day
253,2016-07-01
127,2016-07-02
Run Code Online (Sandbox Code Playgroud)
我想交换第一列和第二列(使日期列成为第一列)。所以我试过这个
awk ' { t = $1; $1 = $2; $2 = t; print; } ' /tmp/2016_logins.csv
Run Code Online (Sandbox Code Playgroud)
但是,结果输出相同的 . 我在上面的 awk 语句中缺少什么才能正确切换?
因为默认分隔符是空格/制表符。不是逗号。获取您的原始代码,并添加一个-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
$
Run Code Online (Sandbox Code Playgroud)
将其剥离以{$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
$
Run Code Online (Sandbox Code Playgroud)