但我对使用awk命令的一小段代码有疑问。我没有在任何地方找到答案/解决方案。
我正在尝试解析输出文件并提取第一个表达式(包括)ATOMIC
和第二个表达式(不包括)Bond
之间的所有数据。此数据将发送到新文件$1_geom
。到目前为止,我有以下内容:
`awk '/ATOMIC/{flag=1;next}/Bond lengths in Bohr/{flag=0}flag' $1` >> $1_geom
此脚本将为我提取正确的数据,但有两个问题:
不会使用数据
ATOMIC
提取数据并将其附加到一行。我希望数据保留解析文件的格式(5列,可变行数)。请参阅附件以查看视觉效果。 Visual Example Attachment。是否有不同的方式来追加数据(>>除外),以便我可以保持格式化?
感谢任何帮助,谢谢。
答案 0 :(得分:0)
next
导致第一个匹配被跳过;如果你不想要它,请把它拿出来。
反引号本身就是shell语法错误(除非您的Awk脚本碰巧产生有效的shell命令)。我猜你在实际的脚本中有一个useless echo
或类似的东西可以解除错误,但会产生你描述的症状。
答案 1 :(得分:0)
这是csh脚本中代码的一部分,我在这一行前面确实有一个“echo”。删除“回声”使其完美运行并解决了我遇到的两个问题。