我正在编写一个脚本,它将以文件名作为参数,查找每行开头的特定单词 - 在这种情况下是单词ATOM,并打印特定列的值。
$FILE=*.pdb *
if test $# -lt 1
then
echo "usage: $0 Enter a .PDB filename"
exit
fi
if test -r $FILE
then
grep ^ATOM $FILE | awk '{ print $18 }' | awk '{ print NR $4, "\t" $38,}'
else
echo "usage: $FILE must be readable"
exit
fi
我有三个问题需要解决:
- 如何使用awk仅打印第一个单词为ATOM的行
- 如何使用awk仅打印符合上述条件的行中的特定列,具体是2-20和38-40列
- 如何指示这必须是pdb文件?*.pdb *
grep
和awk
)不检查文件名;这是有原因的。 - David Z