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