首页 > 解决方案 > 如何反转所有符合sed的单词?

问题描述

例如,我们有:

This is the song that doesn`t end

什么 sed 命令会把它变成这个?

end doesn`t that song the is This

我只发现了如何反转文件中的行(又名tac):

sed -n '1!G;h;$p'

标签: sedreverseword

解决方案


这可能对您有用(GNU sed):

sed -r 'G;:a;s/^(\S+)(\s*)(.*\n)/\3\2\1/;ta;s/\n//' file

添加换行符作为分隔符。将当前行分成三部分,并按顺序在第一个单词、后面的空格和换行符后面的行的其余部分前面。迭代直到模式匹配失败,然后删除引入的换行符。


推荐阅读