从标准输入复制一段数据

从标准输入复制一段数据

我正在运行一个从标准输入获取输入的脚本。此输入最终可能会非常大,因此我想将我感兴趣的部分提取到临时文件中。

第一行包含“[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]

相关内容