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

使用bash脚本从一个文件选择性地复制到另一个文件,bash,Bash,我正在尝试编写一个bash脚本,它将复制一个文件,从文件中取出某些数字,并将它们作为头。原始文件如下所示: # # Rotational transition: j= **3**--> **8** # # Threshold energy **0.72598151E-01** eV # 0.01000019 0.000000 0.03000057 0.000000 ... 我已将希望复制为标题的功能设置为粗体,因此输出文件

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

    #
    # 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
echo>newFile
而read-r行
做
echo$line>>新文件
完成<原始文件
完成

非常感谢你的帮助


James未经测试,但你会想到:

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"

非常感谢您的帮助,这似乎非常接近解决方案。我可以看到$(…)中的行如何从文件中提取正确的信息。然而,当我尝试运行这段代码时,我得到了一个错误:“语法错误:无效的算术运算符(错误标记为…),它说错误标记是$(…)中的内容。愚蠢的我,我当然
$(…)
没有
$(…)
编辑了答案,现在在我的测试中可以使用。非常感谢你的帮助