bash for循环中的猫

时间:2018-10-09 01:37:41

标签: bash loops cat

我的目标是按照在文本文件“ 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”开头的行在最后一个原子上已损坏。为什么?

谢谢!

0 个答案:

没有答案