0

如何使用 sed 交换以“:”分隔的列?

例如

string1:string2


string3 string4:string5


string6:string7-string8

进入

string2:string1

string5:string3 string4

string7-string8:string6

谢谢!

4

1 回答 1

1

此代码将交换:名为example.txt-的文件中的列

sed -i -r 's/(.+):(.+)/\2:\1/' example.txt

解释 -

  • -i用于就地替换
  • -r强制sed使用扩展的正则语法
  • .+说寻找任何字符任意次数。这是一个非常“贪婪”的正则表达式,但在这种情况下有效。然后,括号用于捕获文本。
  • 然后,最后使用\1\2以相反的顺序交换列:
于 2020-11-17T06:40:47.970 回答