使用SED在bash中交换列而不使用循环

时间:2016-12-23 16:21:59

标签: regex linux sed

我是Sed的新手,我正在尝试使用Sed学习一些模式。 我有一个filenamne.txt,其中包含以下条目:

  

ppp / jjj qqq / kkk rrr / lll

我的目标是在斜线之前交换单词,在三个 word1 / word2 列的每一行中交换斜杠之后的单词:

  

jjj / ppp kkk / qqq lll / rrr

我尝试使用sed –re ‘s!(.*)(/)(.*)!\1\2\!’ filename.txt,但它没有用。知道怎么办呢?

3 个答案:

答案 0 :(得分:1)

var arr = {'a','b',};

答案 1 :(得分:1)

perl命令行中使用替换更为直接: -

perl -pe 's/(\w+)\/(\w+)/$2\/$1/g' file
jjj/ppp kkk/qqq lll/rrr

答案 2 :(得分:0)

$ sed 's#\([^ ]*\)/\([^ ]*\)#\2/\1#g' file
jjj/ppp kkk/qqq lll/rrr