如何交换这样的文件中的列?

use*_*498 8 text-processing csv

我有一个文本文件,每一行都像这样存储:

"Video or movie"    "parent"    "Media or entertainment"    "1" "1" "1" "0" "0"
Run Code Online (Sandbox Code Playgroud)

我想将第 3 列与第 2 列交换,即

"Video or movie"   "Media or entertainment"  "parent"   "1" "1" "1" "0" "0"
Run Code Online (Sandbox Code Playgroud)

如何在 linux 中使用 shell 脚本或任何其他脚本语言执行此操作?我只需要一个最简单、最快捷的方法。

Kev*_*vin 9

它可以awk通过"用作字段分隔符来完成。但是这样做,您必须记住它$1是空的,$2包含第一个字符串,字符串$3之间的空格,$4第二个字符串等。此外,交换两个字符串而不是仅打印所有字段并希望您输入更可靠够$n秒。考虑到这些,以下应该有效:

awk 'BEGIN{OFS=FS="\""} {tmp=$4;$4=$6;$6=tmp;print}' input_file >output_file
Run Code Online (Sandbox Code Playgroud)