我正在尝试使用 sed 交换每一行中的单词,如下所示:
sed 's/\([^ ]*\), \([^ ]*\)/\2, \1/' sed.txt
这是 sed.txt:
FIRST LAST
FIRST LAST
FIRST LAST
FIRST LAST
但它不起作用,我不知道为什么,我想要的结果是:
LAST FIRST
LAST FIRST
LAST FIRST
LAST FIRST
我知道这个例子微不足道,但我想更多地了解 sed,因为我只是用它来交换当前位置的单词而不改变位置。
答案1
sed 's/\([^ ]*\), \([^ ]*\)/\2, \1/' sed.txt
问题是第一个逗号,因为在源文本中没有它。更改:
sed 's/\([^ ]*\) \([^ ]*\)/\2, \1/' sed.txt
并且会起作用