使用bash脚本从一个文件选择性地复制到另一个文件
我正在尝试编写一个bash脚本,它将复制一个文件,从文件中取出某些数字,并将它们作为头。原始文件如下所示:使用bash脚本从一个文件选择性地复制到另一个文件,bash,Bash,我正在尝试编写一个bash脚本,它将复制一个文件,从文件中取出某些数字,并将它们作为头。原始文件如下所示: # # Rotational transition: j= **3**--> **8** # # Threshold energy **0.72598151E-01** eV # 0.01000019 0.000000 0.03000057 0.000000 ... 我已将希望复制为标题的功能设置为粗体,因此输出文件
#
# 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"
非常感谢您的帮助,这似乎非常接近解决方案。我可以看到$(…)中的行如何从文件中提取正确的信息。然而,当我尝试运行这段代码时,我得到了一个错误:“语法错误:无效的算术运算符(错误标记为…),它说错误标记是$(…)中的内容。愚蠢的我,我当然
$(…)
没有$(…)
编辑了答案,现在在我的测试中可以使用。非常感谢你的帮助