当我写这些时有一些奇怪的东西:
echo "VAL LES LE VAL LE VAL" | sed -E -e 's/ LES? / /g'
我得到:
VAL LE VAL VAL
代替:
VAL VAL VAL
LES之后的单词LE保留,但最后一个LE单词被删除。
GREP – “点匹配换行”选项?
Bash脚本缺less']'错误
如何检查脚本是否正在运行或不从脚本本身?
壳与grep,sed,awk在windows
限制所有Linux命令的输出
我在2005年5月10日的Mac OS X 10.8上使用sed命令
有谁知道这个结果的原因?
谢谢。
如何在bash中反转“”和“ 303 266”这样的转义反斜杠ecodings?
Ncurses阅读数字键和逃脱
将命令的输出分配给shell脚本中的variables
使用cygwin编译Windows上的ffmpeg的问题
Linux bash – input格式
sed不递归匹配输出模式 。 也就是说,输入行被读取,并且当模式匹配时,生成修改的输出,并且输入行的其余部分被扫描。 “s”命令不会扫描新创建的输出 。 因此,在您替换第一个LES 新创建的空间将不会被扫描,并且由于没有前导空间,下一个LE将不会被匹配。
替代方案:
echo "VAL LES LE VAL LE VAL" | sed -E -e 's/ *LES?//g'
echo "VAL LES LE VAL LE VAL" | sed -E -e 's/ LES? / /g'
这里<space>LES<space>匹配并被<space>取代。 所以下一个字符将是LE<space> ,它不匹配sed expr <space>LES?<space> ,因此没有修改。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。