我试图在一行中交换两个单词,但它不起作用。例如:“今天是我大学的第一天”应该是“我的今天是大学的第一天”
这是我尝试过的:
sed 's/\([a-zA-z0-9]\)\([a-zA-z0-9]\)\([a-zA-z0-9]\)/\3\2\1/' filename.txt
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
试试这个:
sed -r 's/([a-zA-Z0-9]+) ([a-zA-Z0-9]+) ([a-zA-Z0-9]+)/\3 \2 \1/'
Run Code Online (Sandbox Code Playgroud)
您的问题是您试图-r在 sed 命令中使用没有选项或转义符号的扩展正则表达式。
正则表达式也不完全正确。
您指定的范围不正确:没有A-z范围,有A-Z.
您也忘记了空格并且您没有指定单词是多字符的。