Age*_*e87 0 awk text-processing
我正在寻找一种方法来切换制表符分隔文件的最后两个字段。字段的数量因行而异,因此我无法指定字段编号。
我在网上能找到的大部分内容都是针对特定领域的脚本。例如用 awk 交换两列
谢谢!
awk -F"\t" -v OFS="\t" 'NF>1 {t=$(NF-1); $(NF-1)=$NF; $NF=t} {print}' file
Run Code Online (Sandbox Code Playgroud)
仅当我们至少有 2 个字段时,才在$NF和之间进行标准交换。$(NF-1)访问字段 -1 是致命错误(如果是空行,NF==0)。
另请参阅:GNU awk 字段