我尝试在文本文件中交换两列,字段分隔符是管道'|' 标志.
我发现并尝试过
awk ' { t = $1; $1 = $2; $2 = t; print; } ' input_file
Run Code Online (Sandbox Code Playgroud)
当字段分隔符是选项卡时,它可以工作.
我也试过了
awk -F\| '{print $2 $1 }' input_file
Run Code Online (Sandbox Code Playgroud)
但我没有设法指定'|' 作为输出字段分隔符.
您需要定义OFS,输出字段分隔符.您可以使用以下任一方式执行此操作:
awk 'BEGIN{FS=OFS="|"} {t=$1; $1=$2; $2=t; print} ' input_file
Run Code Online (Sandbox Code Playgroud)
要么
awk -v OFS="|" -v FS="|" ' {t=$1; $1=$2; $2=t; print} ' input_file
Run Code Online (Sandbox Code Playgroud)
或者(感谢Jaypal!)
awk '{t=$1; $1=$2; $2=t; print}' OFS="|" FS="|" input_file
Run Code Online (Sandbox Code Playgroud)