我有一个以空格分隔的文件,我需要将其转换为:
header=tab separated,
records=" ; " separated (space-semicolon-space)
我现在正在做的是:
cat ${original} | awk 'END {FS=" "} { for(i=1; i<=NR; i++) {if (i==1) { OFS="\t"; print $0; } else { OFS=";" ;print $0; }}}' > ${new}
但只是部分工作,首先,它产生数百万行,而原始的大约有 90000 行。
二是表头,这里要修改:
if (i==1) { OFS="\t"; print $0; }
完全没有修改,
另一种选择是使用 sed,我可以部分完成该工作,但标题仍然保持不变:
cat ${original} | sed 's/\t/ ;/g' > ${new}