下面是我的awk代码,用于对输入文件进行排序和拆分,并将其重命名为新的输出文件。但我有一个问题,因为我不想保持" "在文件名中,但输出文件的文件名是根据输入文件的前四列创建的。 file = path"" $ 1"" $ 2" " $ 3" " $ 4" _03042017.csv&#34 ;.我一直在尝试使用gsub删除" "但它也将删除" "内部文件不是我想要的结果。我只想删除" "仅在文件名中。有人可以帮我吗?欣赏它很多。
awk -F"|" 'BEGIN { OFS = "|" } NR==1 {
for( i=1;i<5;i++) $i = ""
h = substr($0, index($0,$5)); sub(/^[[:blank:]]+/,"", h)
next
}
{
file= path ""$1""$2"_"$3"_"$4"_03042017.csv"
# remove 4 first field
for( i=1;i<5;i++) $i = ""
# cleaning starting space
Cleaned = substr($0, index($0,$5)); sub( /^[[:blank:]]+/, "", Cleaned)
print ( a[file]++ ? "" : "DM9 03042017" ORS h ORS ) Cleaned > file
}
END {
for(file in a) print "EOF " a[file] > file
} ' file1