Take nth column in a text file

前端 未结 6 1070
小蘑菇
小蘑菇 2020-11-29 20:22

I have a text file:

1 Q0 1657 1 19.6117 Exp
1 Q0 1410 2 18.8302 Exp
2 Q0 3078 1 18.6695 Exp
2 Q0 2434 2 14.0508 Exp
2 Q0 3129 3 13.5495 Exp

6条回答
  •  感情败类
    2020-11-29 20:57

    You can use the cut command:

    cut -d' ' -f3,5 < datafile.txt
    

    prints

    1657 19.6117
    1410 18.8302
    3078 18.6695
    2434 14.0508
    3129 13.5495
    

    the

    • -d' ' - mean, use space as a delimiter
    • -f3,5 - take and print 3rd and 5th column

    The cut is much faster for large files as a pure shell solution. If your file is delimited with multiple whitespaces, you can remove them first, like:

    sed 's/[\t ][\t ]*/ /g' < datafile.txt | cut -d' ' -f3,5
    

    where the (gnu) sed will replace any tab or space characters with a single space.

    For a variant - here is a perl solution too:

    perl -lanE 'say "$F[2] $F[4]"' < datafile.txt
    

提交回复
热议问题