【发布时间】:2011-08-29 06:37:30
【问题描述】:
我有一个类似这样的输入文件:
some line
some other line
another line
start_delimiter
interesting stuff
more interesting stuff
even more interesting stuff
end_delimiter
possibly more stuff
我想操作 start_delimiter 和 end_delimiter 之间匹配正则表达式模式的行并将结果写入输入文件。例如,将 '//' 添加到包含单词 'more' 的行的开头(只要这些行位于分隔符之间):
some line
some other line
another line
start_delimiter
interesting stuff
//more interesting stuff
//even more interesting stuff
end_delimiter
possibly more stuff
我可以通过这种方式获取分隔符之间的文本部分:
awk '/start_delimiter/,/end_delimiter/' inputfile
如果我将它通过管道传输到另一个 awk,我可以更改我感兴趣的行:
awk '/more/ {sub(/^/,"//")}1'
我不确定如何返回并用新内容替换分隔部分。有任何想法吗?单线加分。
【问题讨论】:
标签: awk delimiter substitution