我对命令有疑问awk
。我想获取一堆文件并从每个文件中找到一行并将它们提取到逗号分隔的文本文件中,以便我可以将其导入 Excel 中以进行绘图。然而,这让我担心,因为我使用的程序输出 .info 文件,而且我听说它只awk
适用于文本文件。是grep
最好的选择吗?如果是这样,我怎样才能使输出以逗号分隔?
程序输出的文件以.phy.rooting.0.rearrange.0.info结尾
.info 文件包含一行,其中指出: Duplications:2
这些是我获取必须删除的信息的地方。
该命令目前有效,但我希望有一个更新的命令,并且如果有意义的话,也可能面临更改学习代码的挑战。
有效的代码是:
grep -w Duplications: *.info| grep -v Conditional >dups
然而,我有点想看看我是否可以编写一个可以做同样事情的 Awk 代码。
答案1
awk 相当于
grep -w Duplications: *.info| grep -v Conditional >dups
将会
awk '/\<Duplications:/ && !/Conditional/ {print}' *.info > dups
如果某行与单词“Duplications:”匹配并且该行确实不是包含“条件”,打印该行。
我不认为 awk 比 grep 提供任何优势。