我有一个像这样的文本文件:
X0122
Yellow Car
$1200
YK321
Black Car
$400
BZ321132
Red Boat
$2344
每行由一个分隔\n
我想将每 3 个元素加入一行,并用 分隔;
。因此,该文件将被转换为:
X0122;Yellow Car;$1200
YK321;Black Car;$400
BZ321132;Red Boat;$2344
我该如何在 Unix 上做到这一点?
注意:这些文件可能包含重音字母,如 á、ó、ã 和单引号,并以“UTF-8 Unicode 英语文本,带有很长的行”编码,就像命令file
所说的那样。
答案1
您可以使用粘贴:
$ paste -sd';;\n' file
X0122;Yellow Car;$1200
YK321;Black Car;$400
BZ321132;Red Boat;$2344
答案2
和awk
:
awk 'ORS=NR%3?";":RS'
输出:
X0122;Yellow Car;$1200
YK321;Black Car;$400
BZ321132;Red Boat;$2344
说明: 根据行号,输出记录分隔符设置为分号或换行符。