使用sed时, 不能使用
|
操作, 查询了一下Regex alternation/or operator (foo|bar) in GNU or BSD Sed sed 是使用POSIX基本正则, 不包括|
操作, 需要使用-E
参数开启正则扩展
替换时, 需要使用前面匹配到的对象, 需要使用到反向引用. 首先需要对正则表达式使用 分组, 然后在替换时引用分组.
# vim \1 代表分组1
%s/\(.*\)——\(.*\)/\2——\1/g
%s/\([a-z]*\)\(.\{2,3\}\),/\1\=${\1},/g
%s/\s\+\(\S*\)$/\".toUpperCase(),\"\1/g