使用bash脚本从一个文件选择性复制到另一个文件

时间:2014-06-30 15:41:26

标签: bash

我正在尝试编写一个bash脚本,该脚本将复制一个文件,从文件中取出某些数字并使其成为Header。原始文件如下所示:

    #
    # Rotational transition: j= **3**--> **8**
    #
    # Threshold energy **0.72598151E-01** eV 
    #
    0.01000019 0.000000
    0.03000057 0.000000
    ...

我已将要复制的功能设为粗体,因此输出文件将如下所示:

    3 8 0.72598151E-01
    #
    # Rotational transition: j= **3**--> **8**
    #
    # Threshold energy **0.72598151E-01** eV 
    #
    0.01000019 0.000000
    0.03000057 0.000000
    ...

我希望这个脚本能够复制一堆文件,这些文件都具有与上面相同的布局,但每个文件上的数字都会不同。我复制文件的脚本是:

    echo > newFile
    while read -r line
        do 
        echo $line >> newFile
        done < originalFile
    done

非常感谢您的帮助

詹姆斯

1 个答案:

答案 0 :(得分:1)

未经测试,但你明白了:

FIRST=$(head -n2 "$1" | grep 'Rotational transition' | sed 's/.*j=//; s/\s//g; s/-->/ /')
SECOND=$(head -n4 "$1" | grep 'Threshold energy' | sed 's/.*energy //; s/ eV//')
echo "$FIRST $SECOND" > "$2"
cat "$1" >> "$2"