我尝试在文本文件中交换两列,字段分隔符是管道' |'登录。
我发现并尝试了
awk ' { t = $1; $1 = $2; $2 = t; print; } ' input_file
当字段分隔符为选项卡时,它可以正常工作。
我也试过
awk -F\| '{print $2 $1 }' input_file
但我无法指定' |'作为输出字段分隔符。
答案 0 :(得分:5)
您需要定义OFS,输出字段分隔符。您可以使用以下任一方式执行此操作:
awk 'BEGIN{FS=OFS="|"} {t=$1; $1=$2; $2=t; print} ' input_file
或
awk -v OFS="|" -v FS="|" ' {t=$1; $1=$2; $2=t; print} ' input_file
或(thanks Jaypal!)
awk '{t=$1; $1=$2; $2=t; print}' OFS="|" FS="|" input_file