【发布时间】:2021-04-19 12:51:56
【问题描述】:
我正在使用我的 bash 脚本中编写的以下函数,以便将许多文件(包含多列数据)合并到一个包含所有融合数据的大摘要图表中
table_fuse () {
paste -d'\t' "${rescore}"/*.csv >> "${rescore}"/results_2PROTS_CNE_strategy3.csv | column -t -s$'\t'
}
以两个文件为例,该例程会产生如下的拼接图作为合并的结果:
# file 1. # file 2
Lig dG(10V1) dG(rmsd) Lig dG(10V2) dG(rmsd)
lig1 -6.78 0.32 lig1 -7.04 0.20
lig2 -5.56 0.14 lig2 -5.79 0.45
lig3 -7.30 0.78 lig3 -7.28 0.71
lig4 -7.98 0.44 lig4 -7.87 0.42
lig5 -6.78 0.28 lig5 -6.75 0.31
lig6 -6.24 0.24 lig6 -6.24 0.24
lig7 -7.44 0.40 lig7 -7.42 0.39
lig8 -4.62 0.41 lig8 -5.19 0.11
lig9 -7.26 0.16 lig9 -7.30 0.13
由于两个文件共享相同的第一列(Lig),如何在每个 fused 文件中删除(替换为“”)该列的所有重复,同时只保留第一列的 Lig 列CSV?
【问题讨论】:
-
你说你有代码从所有后续文件中添加 Lig 列,同时合并它们并询问如何删除它。考虑一开始就不要添加它。顺便说一句,您的函数将不起作用 - 您正在将命令的输出重定向到文件,然后尝试将该重定向的结果通过管道传输到
column。
标签: bash awk multiple-columns