sed:delete:delete_leading_zeroes_from_selected_double_quoted_fields
SED - Delete - Delete leading zeroes from selected double quoted fields
Strip leading zeros from fields 3 and 5 only. There could be one or many leading zeroes.
"ACCOUNT","REAL","022000046977525","REAL","00000220000488","ONLINE",......
Desired output:
"ACCOUNT","REAL","22000046977525","REAL","220000488","ONLINE",......
sed -re ' s/","/\n/4;s//\n/2; s/\n0*([0-9])/","\1/g' filename
NOTE: Assumes that all the fields are quoted.
Marks the third and fifth fields by a newline and remove any leading zeros.
In cases where the entire field is zeros, it will preserve the last zero rather than make the field vanish.
Using awk
awk -F, '{OFS=","; sub(/"0+/, "\"", $3); sub(/"0+/, "\"", $5)}1'
Shouldn't be an issue unless your header actually has leading zeros but if needed you could do:
awk -F, 'NR > 1{OFS=","; sub(/^"0+/, "\"", $3); sub(/^"0+/, "\"", $5)}1'
This will replace the “ and all leading zeros in fields 3 and 5 with just a quote.
sed/delete/delete_leading_zeroes_from_selected_double_quoted_fields.txt · Last modified: 2020/08/17 13:52 by 192.168.1.1