sed-在纯文本文件中每四行后插入逗号
我试图使用sed在第1、4、8行等的值后插入逗号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 '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更多的关注。