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
I want to take the 2nd and 4th word of every line like this:
1657 19.6117 1410 18.8302 3078 18.6695 2434 14.0508 3129 13.5495
I’m using this code:
nol=$(cat "/path/of/my/text" | wc -l) x=1 while [ $x -le "$nol" ] do line=($(sed -n "$x"p /path/of/my/text) echo ""${line[1]}" "${line[3]}"" >> out.txt x=$(( $x + 1 )) done
It works, but it is very complicated and takes a long time to process long text files.
Is there a simpler way to do this?
Advertisement
Answer
iirc :
cat filename.txt | awk '{ print $2 $4 }'
or, as mentioned in the comments :
awk '{ print $2 $4 }' filename.txt