如何删除" "仅在文件名中,但没有整个文件?

时间:2017-04-11 01:17:56

标签: awk gsub

下面是我的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

0 个答案:

没有答案