加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 粘贴多个文件,同时排除第一列

发布时间:2020-12-15 21:52:02 所属栏目:安全 来源:网络整理
导读:我有一个目录,其中包含100个相同格式的文件: S43.txtGene S43-A1 S43-A10 S43-A11 S43-A12DDX11L1 0 0 0 0 WASH7P 0 0 0 0C1orf86 0 15 0 1 S44.txtGene S44-A1 S44-A10 S44-A11 S44-A12DDX11L1 0 0 0 0 WASH7P 0 0 0 0C1orf86 0 15 0 1 我想创建一个包含所
我有一个目录,其中包含100个相同格式的文件:

> S43.txt

Gene    S43-A1   S43-A10  S43-A11  S43-A12
DDX11L1 0       0       0       0 
WASH7P  0       0       0       0
C1orf86 0       15      0       1 



> S44.txt

Gene    S44-A1   S44-A10  S44-A11  S44-A12
DDX11L1 0       0       0       0 
WASH7P  0       0       0       0
C1orf86 0       15      0       1

我想创建一个包含所有文件中所有列的巨型表,但是当我这样做时:

paste S88.txt S89.txt | column -d 't' >test.merge

当然,该文件包含两个“基因”列.

>如何一次粘贴目录中的所有文件?
>如何从第一列之后的所有文件中排除第一列?

谢谢.

解决方法

使用–nocheck-order选项加入:

join --nocheck-order S43.txt S44.txt | column -t

(列-t命令使其漂亮)

但是,正如你所说,你想加入所有文件,并且一次只加入2个,你应该能够做到这一点(假设你的shell是bash):

tmp=$(mktemp)
files=(*.txt)

cp "${files[0]}" result.file
for file in "${files[@]:1}"; do
    join --nocheck-order result.file "$file" | column -t > "$tmp" && mv "$tmp" result.file
done

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读