[英]Stop printing when non-comment lines are reached
我在以下表格的各部分之间打印
## FAML [ASMB] keyword,keyword
## Some text
## END OF FAML [ASMB]
我遇到了未达到“## END OF FAML [ASMB]”时出现的问题。 我想在遇到不以注释字符“##”开头的行时立即停止。
例如,我想在到达“一些代码”时停止,即使它没有找到“## END OF FAML [ASMB]”,因为该行不是以“##”开头。
## FAML [ASMB] keyword,keyword
## Some text
## End OF FAL
Some code
这是实现
spc='[[:space:]]*'
gph="[[:graph:]]+"
cmt='\/\/'
ebl='\['
ebr='\]'
local pn_ere="^[[:space:]]*([#;!]+|@c|${cmt})[[:space:]]+"
local kys="(([^,]+)(,[^,]+)*)?"
nfaml=${faml:-"[[:graph:]]+"}
nasmb=${asmb:-"[[:graph:]]+"}
beg_ere="${pn_ere}${nfaml} ${ebl}${nasmb}${ebr}${spc}${kys}$"
end_ere="${pn_ere}END OF ${nfaml} ${ebl}${nasmb}${ebr}${spc}$"
sed -E -n "/$beg_ere/,/$end_ere/ {
/$end_ere/z; s/$pn_ere// ; p
}" "$filename"
您可以检查未评论并忽略。 例如
# ...
notcom_ere='^[^#[:space:]]+'
sed -E -n "/$beg_ere/,/($end_ere)|($notcom_ere)/ {
/$notcom_ere/d
/$end_ere/z
s/$pn_ere//
p
}" "$filename"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.