Shell技术需求:提取不同行指定字符串间的目标文本
提取指定字符串间文本的解决方案
使用awk实现
awk '/match me/ {flag=1; next} /"""/ {flag=0} flag {sub(/^[[:space:]]+/,""); print}' input.txt
- 逻辑说明:
- 匹配到包含
match me的行时,开启标记flag=1并跳过当前行(不输出起始行) - 匹配到包含
"""的行时,关闭标记flag=0 - 当标记为1时,用
sub移除行首所有空白字符,然后打印该行
- 匹配到包含
使用sed实现
sed -n '/match me/,/"""/{//!s/^[[:space:]]\+//p}' input.txt
- 逻辑说明:
-n只打印经过处理的行/match me/,/"""/定位起始字符串到结束字符串的行范围//!排除范围的首尾两行(即跳过起始行和结束行)s/^[[:space:]]\+//替换掉行首的所有空白字符p打印处理后的行
内容的提问来源于stack exchange,提问作者mlawsonca
相关产品推荐
相关产品推荐

