首页 > 解决方案 > Linux sed 命令在每个正则表达式匹配时生成一个新文件

问题描述

我有以下 Linux 命令,用于从一个非常大的日志文件中提取数据。

sed -n "/<trade>/,/<\/trade>/p" Large.log > output.xml

但是,输出是在单个文件output.xml中生成的。我的意图是每次"/<trade>/,/<\/trade>/p"匹配时创建一个新文件。<id>每个新文件都将以标签内的标签命名。<trade> </trade>

像这样的东西...

sed -n "/<trade>/,/<\/trade>/p" Large.log > "/<id>/,/<\/id>/p".xml

但是,这当然不起作用,我不确定如何将正则表达式用作命名规则。

PS此时,我也不确定是否应该使用sed或者我应该尝试使用awk

标签: bash

解决方案


推荐阅读