我正在运行一个从标准输入获取输入的脚本。此输入最终可能会非常大,因此我想将我感兴趣的部分提取到临时文件中。
第一行包含“[cics]”,我想将从该点到下一个“[”的所有内容写入临时文件。
在我不确定如何执行此操作之前,从未在脚本中真正使用过标准输入。
答案1
尝试使用:
awk 'BEGIN { RS="[" } { if (index($0, "cics]") == 1) print; }'
过滤您的输入。它不会包括[
字符。
我建议直接使用输出awk
而不是使用临时文件。
答案2
您可以使用以下方法轻松完成此操作sed
:
sed -n '/\[cics\]/,/\[/p' <<-END
one
two [cics]
three
four
[five]
six
[seven]
[cics] eight
[nine]
ten
END
two [cics]
three
four
[five]
[cics] eight
[nine]