我正在尝试编写一个shell脚本来切换一行中的第一个和第三个单词。在这种情况下,只有包含字母(大写和小写)的字符串计为单词,其他所有字符串(数字,标点符号,空格)都被视为空格。 例如:
abc123def. ghi...jkl
会变成:
ghi123def. abc...jkl
我尝试了以下操作,但它不起作用:
sed 's/\([a-zA-Z][a-zA-Z]*\)[^A-Z^a-z]\([a-zA-Z][a-zA-Z]*\)[^A-Z^a-z]\([a-zA-Z][a-zA-Z]*\)/\3 \2 \1/' input.txt
答案 0 :(得分:2)
使用sed
:
$ echo "abc123def. ghi...jkl" | sed -r 's/([A-Za-z]*)([^A-Za-z]*[A-Za-z]*[^A-Za-z]*)([A-Za-z]*)(.*)/\3\2\1\4/g'
$ ghi123def. abc...jkl