所以我有一个看起来像这样的sed命令:
sed -n "/DXImageTransform.Microsoft.AlphaImageLoader(src='/,/',sizingMethod='crop');/p"
/Users/ME/Documents/weather/yahooWeather.html > /Users/ME/Documents/weather/out.txt
它正确地从文件中获取了我想要的HTML,但它仍然有我用来搜索它的字符串(即“DXImageTransform.Microsoft.AlphaImageLoader(src ='”&“',sizingMethod = 'crop');“在文件的开头和结尾。我想删除这两个字符串。如何修改命令来执行此操作?
答案 0 :(得分:2)
这应该有效:
sed -n -e "1,/START/d" -e "/END/,$d" -e p file.html
我使用-e
选项将3个命令分开,但您可以将它们全部分开;
。
这就是他们所做的:
1,/START/d
- 删除范围:从文件的第一行到匹配模式的行/START/
/END/,$d
- 删除范围:从匹配模式的行到文件末尾p
- 打印行(这些行与之前的模式不匹配)<强>更新强>
如果模式位于第一行,则上述操作无效。使用GNU sed
,您可以像这样修复:
sed -n -e "0,/START/d" -e "/END/,$d" -e p file.html
不幸的是,这不适用于BSD sed
。