我的目标是按照在文本文件“ POSCAR”中找到的原子的顺序连接文件(名称POTCAR_ $ atom)。我希望将此输出保留在当前目录中。
我知道原子列表将始终位于POSCAR文件中以“直接”或“笛卡尔”开头的行的上方。
我的代码:
#Constructs POTCAR with PBE_52 atoms
if grep -q 'Direct' POSCAR; then
atoms=`grep -B 2 'Direct' POSCAR | head -1`
echo $atoms
touch POTCAR
for atom in $atoms
do
echo $atom
cat ~/bin/POTCAR_files/PBE_52/POTCAR_$atom >> POTCAR
done
else
atoms=`grep -B 2 'Cartesian' POSCAR | head -1`
echo $atoms
touch POTCAR
for atom in $atoms
do
cat ~/bin/POTCAR_files/PBE_52/POTCAR_$atom >> POTCAR
done
fi
输出:
O Si Al Li H C
O
Si
Al
Li
H
C
: No such file or directoryR_files/PBE_52/POTCAR_C
这适用于列表中的每个原子,除了最后一个原子。看起来以“ cat”开头的行在最后一个原子上已损坏。为什么?
谢谢!