IN GNU AWK使用FIELDWIDTHS
:
$ awk '
BEGIN {
FIELDWIDTHS="5 4 3" # here you state the field widths
OFS="," # output field separator
print "field1","field2","field3" } # print header in BEGIN
{
print $1,$2,$3 } # print 3 first fields, you could also:
' file # {$1=$1; print} or even:
field1,field2,field3 # {$1=$1}1
XXXXX,YYYY,ZZZ
XXXXX,YYYY,ZZZ
XXXXX,YYYY,ZZZ
XXXXX,YYYY,ZZZ
XXXXX,YYYY,ZZZ
如果你沒有GNU AWK,使用f1=substr($0,1,5);f2=substr($0,6,4)...print f1,f2,f3
。
編輯:
$ awk '
BEGIN {
OFS=","
print "field1","field2","field3" }
{
f1=substr($0,1,5)
f2=substr($0,6,4)
f3=substr($0,10,3)
print f1,f2,f3 }
' file
後者作爲一個內膽採用;
s前插入:
$ awk 'BEGIN {OFS=","; print "field1","field2","field3"}{f1=substr($0,1,5); f2=substr($0,6,4); f3=substr($0,10,3); print f1,f2,f3}' file
前者作爲一個班輪:
$ awk 'BEGIN{FIELDWIDTHS="5 4 3"; OFS=","; print "field1","field2","field3"}{print $1,$2,$3}' file
開始與格式化你的描述,現在它是不可讀的 – RomanPerekhrest
Possib le [awk FIELDWIDTHS WORK]如何重複(http://stackoverflow.com/questions/36085137/how-does-awk-fieldwidths-work) –
字段長度可以變化。這只是一個例子。我的文件可以有超過50列的字段1位可以是1-10,字段2可以是11-15和兒子。此外,我需要如圖所示的標題輸出。請幫助 –