我有一个大文件,其中有如下所示的块:
....
Org Id VIN Plate Registration Error Code
------ -------------------- -------------------- ------------------------------------------
124 aaaaaaaaaaaaaaaaa WI-V-456 Info 1
124 bbbbbbbbbbbbbbbbb DH-BE-1111 Info 2
124 ccccccccccccccccc A-RM-1332 Info 3
124 ddddddddddddddddd S-SH-3333 Info 4
124 eeeeeeeeeeeeeeeee RH-L-360 Info 5
---------------------------------------------------------------------------------------------
....
我只想提取每个列的Error Code
,我该怎么做?
cat ${fichier} | while read line
do
if [ "x${line}" = 'xOrg Id VIN Plate Registration Error Code' ]
then
echo ${line}
##
fi
done
答案 0 :(得分:1)
例如,您可以使用awk
:
$ awk '$NF>0{print $(NF-1), $NF}' file
Error Code
Info 1
Info 2
Info 3
Info 4
Info 5
这将打印倒数第二个和最后一个字段,以防最后一个是文本或数字。
答案 1 :(得分:0)
您有几个选择。 @fedorqui使用awk显示其中一个,您也可以将cut
与grep
混合使用:
$ cut -c 50- testfile.txt | grep ^[^-]
Error Code
Info 1
Info 2
Info 3
Info 4
Info 5
表示:剪切testfiletxt-将字符从50显示到行尾(-c 50-
),然后将其发送到grep
以仅显示不以&#开头的行34; - "炭。