例如,我有以下由“;”分隔的 .csv。
我需要交换 2 列和/或删除一些列。
col1row1;col2row1;col3row1
col1row2;col2row2;col3row2
col1row3;col2row3;col3row3
...
列号不固定,我需要交换的列可以不同。
我使用了 awk 'BEGIN {FS=";";OFS=";"} {print $3, $1}',但如果其中一个交换列是最后一个,它会添加换行符,例如< br/>
col3row1
;col1row1
col3row2
;col1row2
col3row3
;col1row3
...
或 smth 的空格,如 {print $2, $1, $3}
col2row1; col1row1 ;col3row1
col2row2; col1row2 ;col3row2
col2row3; col1row3 ;col3row3
...
最佳答案
您的输入文件包含 control-Ms。运行 dos2unix
或类似的程序来删除它们。
关于linux - 如何使用 awk 交换和删除列而不获取换行符和空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41203362/