【发布时间】:2010-12-14 10:47:12
【问题描述】:
我设法通过用空行分隔文本将它们放入文件中。我试图只保留那些具有特定字符串的段落。虽然 Sed 常见问题解答提到了一个解决方案,但它不起作用(参见下面的示例)
http://www.catonmat.net/blog/sed-one-liners-explained-part-two/
58. Print a paragraph that contains “AAA”. (Paragraphs are separated by blank lines).
sed -e '/./{H;$!d;}' -e 'x;/AAA/!d;'
http://www.linuxhowtos.org/System/sedoneliner.htm?ref=news.rdf
# print paragraph if it contains AAA (blank lines separate paragraphs)
# HHsed v1.5 must insert a 'G;' after 'x;' in the next 3 scripts below
sed -e '/./{H;$!d;}' -e 'x;/AAA/!d;'
你能告诉我为什么它不工作吗?另外,如果您知道使用 unix 工具或其他方式的解决方案,请告诉我。
【问题讨论】:
-
哎呀,这很难读。你能重新格式化你的问题吗?
-
刚刚通过获取一些 Lorem ipsum 并用各种单词替换 'AAA' 进行了测试,它似乎像宣传的那样工作:
sed -e '/./{H;$!d;}' -e 'x;/Pellentesque/!d;' lipsum.txt -
你能比“不工作”更具体吗?
标签: linux unix text sed paragraph