你的例子看上去就是把一个14个字符长度的串,分割成3-3-4-4 长度的4个字串,用;隔开。
如此可以这样实现:
awk
'
{
a1 = substr($0, 1, 3);
a2 = substr($0, 4, 3);
a3 = substr($0, 7, 4);
a4 = substr($0, 11);
printf ("%s;%s;%s;%s\n", a1, a2, a3,a4);
}
'
awk -vOFS=\; -vFIELDWIDTHS="3 3 4 4" '$1=$1' urfile