我如何能够操作grep的输出文本。
现在我正在使用命令:
grep -i "<url>" $file >> ./txtFiles/$file.txt
这将输出如下内容:
<url>http://www.simplyrecipes.com/recipes/chicken_curry_salad/</url>
然后下一行文字将转到下一行。
我怎样才能摆脱<url>
和</url>
并阻止它转到最后一行。
答案 0 :(得分:2)
sed '/<\/*url>/!d;s///g'
<\/*url>
匹配开始和结束标记使用您的示例,它可能看起来像这样
sed '/<\/*url>/!d;s///g' $file >> ./txtFiles/$file.txt
答案 1 :(得分:0)
单个命令:
sed -in '/<url>/ { s|<url>\(.*\)</url>|\1| ; p ; }' INPUT > OUTPUT
或者使用awk:
awk -F "</?url>" '/<url>/ { print $2 }' INPUT > OUTPUT
注意:如果在一行上出现多个<url>...</url>
模式,两者都可能会给您无效输出。如果sed
包含任何管道(<url>...</url>
)字符,则|
版本可能会失败。