我的文件包含太多行。
它的构造如下:
Text
Text
Text
<--!Important Text begins here-->
important Text
Important Text
Important Text
<--!Important Text ends here -->
Unimportant Text
....
<--!Important Text begins here-->
important Text
Important Text
Important Text
<--!Important Text ends here -->
Unimportant Text
....<--!Important Text begins here-->
important Text
Important Text
Important Text
<--!Important Text ends here -->
Unimportant Text
....
等等。
我如何处理重要部分并将其保存在新文件中? 我正在使用Macintosh的仪表板终端
答案 0 :(得分:1)
尝试以下方法:
sed -n '/<--!Important Text begins here-->/,/<--!Important Text ends here -->/ p' \
infile |
fgrep -v -e '<--!Important Text begins here-->' \
-e '<--!Important Text ends here -->' \
> outfile
注意:假设所有<--!Important Text ...
标记都在一个单独的行上。
答案 1 :(得分:1)
如果您希望包含标记,那么您可以执行以下操作:
awk '/<--!Important Text begins here-->/,/<--!Important Text ends here -->/' file
如果您想忽略标记并只打印它们之间的内容,您可以执行以下操作:
awk '
/<--!Important Text begins here-->/{p=1; next}
/<--!Important Text ends here -->/{p=0}
p' file
第一个解决方案是regex
范围。它告诉awk
打印范围(包括)之间的所有内容。要忽略标记,只需设置和取消设置标记即可。