我有一堆文件的结尾是这样的句子:\@.Next sentence
。我想在这段时间后插入一个空格。使用sed后插入空格
然而,并非所有的\@.
都没有空格,所以我的正则表达式检查该句点后的下一个字符是否是大写字母。
因为我正在查看一段时间后的一个字符,所以我不能仅仅更换\@.
到\@.
,并且因为我不知道在这段时间后是什么字符,所以我被卡住了。
我现在命令:
sed -i .bak -E 's/\\@\.[A-Z]/<SOMETHING IN HERE>/g' *.tex
我怎么能抢匹配字符串中的正则表达式替换使用的最后一个字母?我使用的是BSD版本sed
(我使用的是OS X) - 从我的previous question regarding sed
,显然BSD sed(或者至少是苹果版本)并不总是很好玩用GNU sed正则表达式。
这似乎不起作用:'echo'\ @。N | \ @。 Q'| sed -E's \\\\ @。(\ S)/ \\\ @。 \ 1/g''返回'\ @。N | \ @。 Q'(期待'\ @。N | \ @。Q';没有插入空格)。 – simont
奇怪,因为我得到了期望的结果。我正在运行sed 4.2.1。哪个版本是你的? –
使用'gsed'你是对的;这确实有用。谢谢 – simont