我正在寻找一个正则表达式删除一个字符单词.我不介意是否使用perl
,awk
,sed
或bash
内置插件.
测试用例:
$ echo "a b c d e f g h ijkl m n opqrst u v" | $COMMAND
期望的输出:
ijkl opqrst
到目前为止我尝试过的:
$ echo "a b c d e f g h ijkl m n opqrst u v" | sed 's/ . //g' acegijkln opqrstv
我猜是这样的:
该a
不会被删除,因为有之前没有空格
在c
遗体因为一旦b
已被删除,有之前没有更多的空白
等等...
尝试#2:
$ echo "a b c d e f g h ijkl m n opqrst u v" | sed 's/\w.\w//g' s v
在这里,我根本不知道发生了什么.
欢迎任何帮助+解释,我想学习.
您必须使用单词边界\b
(或)\<
并\>
分别匹配单词开头和结尾的空字符串.
echo "a b c d e f g h ijkl m n opqrst u v" | sed 's/\b\w\b \?//g'
(要么)
echo "a b c d e f g h ijkl m n opqrst u v" | sed 's/\<.\> \?//g'