skip to Main Content

I’m trying to remove the first 0 from the third column in my CSV file

tel.csv –

 test,01test,01234567890
 test,01test,09876054321

I have been trying to use the following with no luck –

cat tel.csv | sed 's/^0*//'

3

Answers


  1. Something like:

    sed 's/^([^,]*),([^,]*),0(.*)$/1,2,3/' file.csv
    

    Or awk

    awk 'BEGIN{FS=OFS=","}{sub(/^0/, "", $3)}1' file.csv
    
    Login or Signup to reply.
  2. Assumptions:

    • 3rd column consists of only numbers (0-9)
    • 3rd column could have multiple leading 0's

    Adding a row with a 3rd column that has multiple leading 0's:

    $ cat tel.csv
    test,01test,01234567890
    test,01test,09876054321
    test,02test,00001234567890
    

    One awk idea:

    $ awk 'BEGIN{FS=OFS=","}{$3=$3+0}1' tel.csv
    test,01test,1234567890
    test,01test,9876054321
    test,02test,1234567890
    

    Where: adding 0 to a number ($3+0) has the side effect of removing leading 0's.

    Login or Signup to reply.
  3. If the third field is the last field, as it is in the sample lines:

    sed 's/,0([^,]*)$/,1/' file
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search