0-4
на самом деле не является правильно сформированным синтаксисом sed
. Я бы использовал awk
для этого, но это легко сделать с любым из них.
sed 's/$/,/;n;n;n' file
, которая подставляет одну строку и печатает ее, затем печатает следующие три строки без подстановки, а затем начинает заново с начала сценария; или
awk 'NR % 4 == 1 {sub(/$/,",")} {print}'
, который выполняет подстановку, если номер строки по модулю 4 равен 1, а затем печатает безоговорочно.
Режимы адресации Седа иногда немного разочаровывают; не существует стандартного способа вычисления смещений линий, относительно или в отношении, например, конец файла. Конечно, awk
более сложный, но если вы можете узнать только одно или другое, определенно выберите awk
. (Или в наши дни Python или Perl - гораздо более выгодное вложение.)