sed-在纯文本文件中每四行后插入逗号

sed-在纯文本文件中每四行后插入逗号,sed,awk,Sed,Awk,我试图使用sed在第1、4、8行等的值后插入逗号 sed '0-4 s/$/,/' in.txt > in2.txt 由于某些原因,这不起作用,所以我想知道是否有人使用awk、sed或任何其他方法来解决这个问题 我得到的错误是 sed: 1: "0-4 s/$/,/": invalid command code - 当前我的数据如下所示: City Address Zip Code County City, Address

我试图使用sed在第1、4、8行等的值后插入逗号

sed '0-4 s/$/,/' in.txt > in2.txt
由于某些原因,这不起作用,所以我想知道是否有人使用awk、sed或任何其他方法来解决这个问题

我得到的错误是

sed: 1: "0-4 s/$/,/": invalid command code -
当前我的数据如下所示:

City Address Zip Code County City, Address Zip Code County 城市 地址 邮政编码 县 我试着把它格式化成这样 City, Address Zip Code County 城市 地址 邮政编码 县


非常感谢。

0-4
确实不是格式良好的
sed
语法。我会使用
awk
来实现这一点,但使用这两种方法都很容易

sed 's/$/,/;n;n;n' file
替换一行并打印它,然后不替换地打印下三行,然后从脚本开始重新开始;或

awk 'NR % 4 == 1 {sub(/$/,",")} {print}'
如果行号模4为1,则进行替换,然后无条件打印

Sed的寻址模式有时有点令人失望;没有计算线偏移的标准方法,例如相对于或参考文件的结尾。当然,
awk
更复杂,但是如果你只能学习其中一种,那么一定要选择
awk
。(或者在当今时代,Python或Perl——一种更好的投资。)

这可能适合您(GNU-sed):


非常感谢,这很有效!肯定会给awk更多的关注。