我想在文件的每一行打印第55-60个字符。我必须这样做,因为我有一个FORTRAN格式的文件,并且每行上没有相同数量的字段分隔符:
HETATM 3109 O HOH B 999 10.307 26.441 12.306 0.26 30.00 O
HETATM 3110 O HOH B1000 10.905 26.874 14.064 0.20 30.00 O
字符55-60
是顶行的第10个字段,底行的第9个字段。
如何使用awk打印字符55-60
?
答案 0 :(得分:6)
使用-c
中的cut
:
$ cut -c55-60 file
0.26
0.20
来自man cut
:
-c , - characters = LIST
仅选择这些字符
或sed
:
$ sed -r 's/.{54}(.{6}).*/\1/' file
0.26
0.20
或awk
与substr()
:
$ awk '{print substr($0,55,6)}' file
0.26
0.20
答案 1 :(得分:0)
您可以尝试:
rev file | awk '{print $3}' | rev