有人可以帮忙解决这个问题吗
我想将搜索模式(START
和 END
)之间的所有行打印到不同的文件(new_file_name
可以是提供的任何增量名称)
但是搜索模式在文件中重复,因此每次找到该模式时,都应该将黑白行转储到不同的文件中
文件是这样的
START --- ./body1/b1
##########################
123body1
abcbody1
##########################
END --- ./body1/b1
START --- ./body2/b2
##########################
123body2
defbody2
##########################
END --- ./body2/b2
最佳答案
perl 解决方案,
perl -MFile::Basename -MFile::Path -ne '
($a) = /^START.+?(\S+)$/;
$b = /^END/;
$a..$b or next;
if ($a){ mkpath(dirname $a); open STDOUT,">",$a; }
$a||$b or print;
' file
关于perl - 使用 perl 或任何方法将搜索模式之间的所有行打印到不同的文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18200981/