I have a file like this:
Sed eleifend orci eget odio
consequat. Sed sagittis ipsum
eget pulvinar. Sed ut lacus
Sed luctus sollicitudin ligula
varius neque. Sed tincidunt
Sed mauris egestas eget. Sed
Curae; Sed aliquam enim Sed,
Sed dictum quis sem. Sed
volutpat tincidunt. Sed lacus.
I want to convert it to:
Sed eleifend orci eget odio
consequat. Sed sagittis ipsum
eget pulvinar. Sed Sed ut lacus
Sed luctus sollicitudin ligula
varius neque. Sed tincidunt
Sed Sed mauris egestas eget. Sed
Curae; Sed aliquam enim Sed Sed,
Sed dictum quis sem. Sed
volutpat tincidunt. Sed Sed lacus.
A Perl one-liner can achieve this by use of the
/emodifier, which allows for logic-based substitution:Explanation
-pi.bakLine-by-line in-place editing of the file. Backup stored in file.txt.bak
BEGINblockSpecify value of
$str, executes once onlys/PATTERN/REPLACEMENT/geRegex substitution on all matches in
$_, line-by-line. REPLACEMENT evaluated as Perl code.(?<=$str)Fixed-length look-behind assertion
++$cnt % 3 ? "" : " $str"Every third match, append
" $str", otherwise append nothing