我怎样才能交换分开的";:&引用;sed中的列?

我怎样才能交换分开的";:&引用;sed中的列?,sed,Sed,如何使用sed交换分隔为“:”的列 比如说 string1:string2 string3 string4:string5 string6:string7-string8 进入 谢谢 此代码将交换名为example.txt的文件中:周围的列- sed -i -r 's/(.+):(.+)/\2:\1/' example.txt 解释- -i用于就地替换 -r强制sed使用扩展的常规语法 +说可以多次查找任何字符。这是一个非常“贪婪”的正则表达式,但在本例中有效。然后,使用括号捕获文

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

比如说

string1:string2


string3 string4:string5


string6:string7-string8
进入


谢谢

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

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

  • -i
    用于就地替换
  • -r
    强制
    sed
    使用扩展的常规语法
  • +
    说可以多次查找任何字符。这是一个非常“贪婪”的正则表达式,但在本例中有效。然后,使用括号捕获文本
  • 然后,最后使用
    \1
    \2
    按相反顺序交换
    周围的列:

到目前为止您尝试了什么?你被困在哪里了?sed-E的/([^:]+):(.*)/\2:\1/“这就是我尝试过的,我用sed-E表达式#1,char 21:unterminated's”命令
cat inputfile;sed-E的/([^:]+):(.*/\2:\1/”
按照你的例子产生了完全想要的输出。。没有
sed
错误在我的末尾请通过编辑添加所有问题的尝试请记住,您不使用
sed
独立,中间有一个shell,可能以特殊方式解释某些字符。您在
sed
的手册页中找不到这些文档,反之亦然。
sed -i -r 's/(.+):(.+)/\2:\1/' example.txt