5

I need to delete the rows which contains 0 value in column number 5.

Before:

1QWO     10      5     45    100    7.5
1R0R      6      3     15    100    8.5
1R5M      4      0      6      0    6.5
1R8S      4      0      6      0      6
1R9L      2      1      1    100    6.3
1RG8      6      0     15      0    5.8
1RJU     10      0     45      0    7.2
1RKI     12      6     66    100    4.6

After:

1QWO     10      5     45    100    7.5
1R0R      6      3     15    100    8.5
1R9L      2      1      1    100    6.3
1RKI     12      6     66    100    4.6

Any one liner will be very helpful.

I know:

sed '/0/d' file_name

but above command will delete 0 from all the columns.

Chris Seymour
  • 83,387
  • 30
  • 160
  • 202
user2176228
  • 327
  • 3
  • 10

4 Answers4

11
awk '$5 != 0'

The machine won't let me submit unless I add this extra text.

John Zwinck
  • 239,568
  • 38
  • 324
  • 436
10

Even faster:

awk '$5' file

If the 5th field is not 0 then the condition is evaluated as true - note that {print $0} is the default block in awk so it can be omitted if this is the only action you want to perform.

Chris Seymour
  • 83,387
  • 30
  • 160
  • 202
fedorqui
  • 275,237
  • 103
  • 548
  • 598
7

This is definately more suited to awk:

$ awk '$5!=0' file
1QWO     10      5     45    100    7.5
1R0R      6      3     15    100    8.5
1R9L      2      1      1    100    6.3
1RKI     12      6     66    100    4.6

But if you really want a sed solution:

$ sed -r '/\S+\s+{4}0\s+/d' file
1QWO     10      5     45    100    7.5
1R0R      6      3     15    100    8.5
1R9L      2      1      1    100    6.3
1RKI     12      6     66    100    4.6
Chris Seymour
  • 83,387
  • 30
  • 160
  • 202
3

With portable sed you can do it like this:

sed '/\([^ ]\+ \+\)\{4\}0\+ /d'

This way you confine checking for zero to the fifth column.

With perl you can use auto-split, notice that you don't need to specify a condition for $F[4] because it is implicit:

perl -ane 'print if $F[4]'

Output in both cases:

1QWO     10      5     45    100    7.5
1R0R      6      3     15    100    8.5
1R9L      2      1      1    100    6.3
1RKI     12      6     66    100    4.6
Thor
  • 45,082
  • 11
  • 119
  • 130