我相信我没有做错什么:
sed -e "s_//[01]\.thumbs\.4chan\.org/[a-z0-9]\+/src/\([0-9]\*\)s\.jpg_/${LOC}/\1s.jpg_g" -e "s_//images\.4chan\.org/[a-z0-9]\+/src/\([0-9]\*\)\.\(jpg\|gif\|png\)_/${LOC}/\1.\2_g" $LOC.html > a谁能告诉我为什么它不能将在线链接转换为离线链接?
发布于 2012-04-20 16:38:31
我认为\*和\+应该是*和+?否则,它从字面上看就是*和+。
发布于 2012-04-20 18:26:25
在简单的正则表达式模式下使用sed,就像你已经做的那样,+必须转义为\+,并且正如“预期”的那样,星号*需要是asis,即。而不是逃脱。下面是几个使用\+和*的测试
如果想简化操作,可以在extended regex模式下使用sed,方法是使用-r选项。你不需要逃离+,(,)....
echo '//0.thumbs.4chan.org/abc123/src/029s.jpg' |
sed -n "\_//[01]\.thumbs\.4chan\.org/[a-z0-9]\+/src/\([0-9]*\)s\.jpg_p"
echo '//images.4chan.org/abc123/src/029.jpg' |
sed -n "\_//images\.4chan\.org/[a-z0-9]\+/src/\([0-9]*\)\.\(jpg\|gif\|png\)_p"输出:
//0.thumbs.4chan.org/abc123/src/029s.jpg
//images.4chan.org/abc123/src/029.jpghttps://stackoverflow.com/questions/10242773
复制相似问题