我拥有适用于http://regexr.com/的RegEx (\[!\[|!\[)(.*)
,但是当我尝试将sed
与-e 's/(\[!\[|!\[)\(.*\)//g'
一起使用时,它不起作用。
我找到了一个建议使用-r
命令代替-e
的答案,但是我使用的是Mac OSX El Capitan,并且-r
不是受支持的命令。
我还找到了一个答案,说在Mac OSX上使用-E
而不是-r
,但这不起作用,并且一位评论者表示他们不是一回事。还建议使用grep
代替sed
,但我正在添加此搜索并替换为已使用sed
的其他几个。
我的代码块看起来像这样,有问题的搜索和替换位于sed...
行的末尾:
# Transform the readme
if [ -f readme.md ]; then
mv readme.md readme.txt
if [ -f CHANGELOG.md ]; then
cat CHANGELOG.md >> readme.txt
rm CHANGELOG.md
fi
sed -i '' -e 's/^# \(.*\)$/=== \1 ===/' -e 's/ #* ===$/ ===/' -e 's/^## \(.*\)$/== \1 ==/' -e 's/ #* ==$/ ==/' -e 's/^### \(.*\)$/= \1 =/' -e 's/ #* =$/ =/' -e 's/\*\*//g' -e 's/(\[!\[|!\[)\(.*\)//g' readme.txt
fi
示例我想完全删除以[![
开头的第二行:
=== CMB2 Admin Extension ===
[![Build Status](https://travis-ci.org/twoelevenjay/CMB2-Admin-Extension.svg?branch=master)](https://travis-ci.org/twoelevenjay/CMB2-Admin-Extension)
Contributors: twoelevenjay
我还希望它删除以![
开头的行,如下所示:
![CMB2](https://plugins.trac.wordpress.org/export/HEAD/cmb2/assets/banner-1544x500.png)
答案 0 :(得分:2)
我想完全删除以
[![
开头的第二行:
在OSX上sed
这应该适合你:
sed -E '/^(\[!\[|!\[)/d'
您不需要使用替换;只需/d
即可。