我将如何操作grep的输出文本。如何使用awk处理文本?
现在我使用下面的命令:
grep -i "<url>" $file >> ./txtFiles/$file.txt
这将输出类似这样:
<url>http://www.simplyrecipes.com/recipes/chicken_curry_salad/</url>
,然后下一个文本将转到下一行。
我怎样才能摆脱<url>
和</url>
,并阻止它到最后的下一行。
我将如何操作grep的输出文本。如何使用awk处理文本?
现在我使用下面的命令:
grep -i "<url>" $file >> ./txtFiles/$file.txt
这将输出类似这样:
<url>http://www.simplyrecipes.com/recipes/chicken_curry_salad/</url>
,然后下一个文本将转到下一行。
我怎样才能摆脱<url>
和</url>
,并阻止它到最后的下一行。
sed '/<\/*url>/!d;s///g'
<\/*url>
结束标记的所有情况下你的榜样行的比赛都开始与,它可能看起来像这样
sed '/<\/*url>/!d;s///g' $file >> ./txtFiles/$file.txt
谢谢你的工作。最后一件事,它仍然会在url后面的下一行。你知道我将如何摆脱这种情况,以便下一篇文章能够紧随其后。 – 2013-04-25 23:10:13
或者可能是我如何添加下一行。我正在使用printf,所以我假设这是什么导致它去下面的文本的下一行。还有什么我应该用来追加文本在行尾,而不是在一个新的行? – 2013-04-25 23:28:18
个单命令:
sed -in '/<url>/ { s|<url>\(.*\)</url>|\1| ; p ; }' INPUT > OUTPUT
或者使用awk:
awk -F "</?url>" '/<url>/ { print $2 }' INPUT > OUTPUT
注:如果有多个<url>...</url>
模式在一行中发生双方可能会给你无效的输出。如果<url>...</url>
包含任何管道(|
)字符,sed
版本可能会失败。
摆脱了什么?也许你想删除新的行字符,在这种情况下,管它在TR“\ n”“” – lc2817 2013-04-25 05:31:39