使用 awk 围绕符号/文本交换单词(“to”)

使用 awk 围绕符号/文本交换单词(“to”)

我有一个文件,例如:

Aa Bb C Y... "TO" Bb
Cc Z J >> sd "TO" Dd
Ee Z H S DFF "TO" Ff

但我想要这样的:

Bb "TO" Aa Bb C Y... 
Dd "TO" Cc Z J >> sd 
Ff "TO" Ee Z H S DFF

所以我可以在“TO”周围交换文本......

答案1

我会做:

awk -F ' "TO" ' '{print $2 FS $1}'

-F定义字段分隔符(FS变量)。假设这些行只出现一次"TO"并且被空格包围。

使用perl,您可以拥有更多控制权,例如:

perl -Mopen=locale -lpe 's/^(.*?)(\h*)("TO")(\h*)(.*)$/$5$4$3$2$1/'

也可以移动周围的空白"TO"

答案2

尝试:

awk -F" \"TO\" " '{print $2 " \"TO\" " $1}' yourfile

相关内容