Should I use AWK or SED to remove commas between quotation marks from a CSV file? (BASH)

后端 未结 2 549
别那么骄傲
别那么骄傲 2021-01-28 18:06

I have a bunch of daily printer logs in CSV format and I\'m writing a script to keep track of how much paper is being used and save the info to a database, but I\'v

2条回答
  •  一向
    一向 (楼主)
    2021-01-28 18:31

    There is probably an easier way using sed alone, but this should work. Loop on the file, for each line match the parentheses with grep -o then replace the commas in the line with spaces (or whatever it is you would like to use to get rid of the commas - if you want to preserve the data you can use a non printable and explode it back to commas afterward).

    i=1 && IFS=$(echo -en "\n\b") && for a in $(< test.txt); do 
     var="${a}"
     for b in $(sed -n ${i}p test.txt | grep -o '"[^"]*"'); do 
      repl="$(sed "s/,/ /g"  <<< "${b}")" 
      var="$(sed "s#${b}#${repl}#" <<< "${var}")" 
     done 
     let i+=1
     echo "${var}" 
    done
    

提交回复
热议问题