regex - Uncomment a block of text with awk or sed -
assuming have text file example:
lorem ipsum dolor sit amet, nullam euismod tractatos id mel, has integre ornatus feugait ad. in eum enim putent fierent. quo melius persecuti conceptam eu, ne probo autem inciderint quo, ius et atqui diceret. causae prompta corpora ex ius. atqui aperiri in duo, ex pro reque utinam. sea ne prima falli petentium. ut has ancillae omnesque lucilius, vim ex alia audire contentiones. error possit singulis @ his. ne purto soleat ius, detracto sententiae mel ne. te eos regione detracto, eam quas accumsan detracto an. # lorem ipsum dolor sit amet, nullam euismod tractatos id mel, has integre ornatus # feugait ad. in eum enim putent fierent. quo melius persecuti conceptam eu, ne probo # autem inciderint quo, ius et atqui diceret. causae prompta corpora ex ius. atqui # aperiri in duo, ex pro reque utinam. # comment # @ debet expetenda sed, sed te case ceteros adolescens. ad sea facer minim tempor, # eam facilisi definitiones ei, vix vidit erant dissentias et. eum fierent scaevola # suscipiantur eu. eum essent platonem interesset ex, ut idque vidisse nam, labores # intellegam comprehensam eos et. eu eum appetere sententiae percipitur, ad eam hinc # impetus sententiae, pro duis consetetur reprehendunt in. id percipit iracundia # abhorreant est. # sea ne prima falli petentium. ut has ancillae omnesque lucilius, vim ex alia # audire contentiones. error possit singulis @ his. ne purto soleat ius, detracto # sententiae mel ne. te eos regione detracto, eam quas accumsan detracto an. lorem ipsum dolor sit amet, nullam euismod tractatos id mel, has integre ornatus feugait ad. in eum enim putent fierent. quo melius persecuti conceptam eu, ne probo autem inciderint quo, ius et atqui diceret. causae prompta corpora ex ius. atqui aperiri in duo, ex pro reque utinam. sea ne prima falli petentium. ut has ancillae omnesque lucilius, vim ex alia audire contentiones. error possit singulis @ his. ne purto soleat ius, detracto sententiae mel ne. te eos regione detracto, eam quas accumsan detracto an.
i want use either awk or sed uncomment next 3 lines after line # comment
ends looking this:
# comment @ debet expetenda sed, sed te case ceteros adolescens. ad sea facer minim tempor, eam facilisi definitiones ei, vix vidit erant dissentias et. eum fierent scaevola suscipiantur eu. eum essent platonem interesset ex, ut idque vidisse nam, labores # intellegam comprehensam eos et. eu eum appetere sententiae percipitur, ad eam hinc # impetus sententiae, pro duis consetetur reprehendunt in. id percipit iracundia # abhorreant est.
please explain solution can learn , understand. knowledge of awk , sed still @ beginner level.
awk
counts lines in nr
variable.
awk '/# comment/ {n=nr} n && nr-n && nr-n<=3 {sub("# ?","")} {print}'
n=nr
captures number of line # comment
occurs
zero equivalent false, , non-zero true in awk, in conditional: 1) n
prevents uncommenting starting @ beginning of file, 2) nr-n
prevents uncommenting starting on # comment
line, , 3) nr-n<=3
defines lines uncommenting occur.
function sub
awk's once-only string substitution. string substituted "", i.e. removed, comment symbol #
followed 0 or 1 spaces -- ?
regular expression quantifier "optional" (zero or one).
Comments
Post a Comment