【发布时间】:2020-08-25 07:37:53
【问题描述】:
我有一个像这样的 A.txt 文件(真正的文件有 ~1000 行和 ~70,000 列):
ID SEX A B C
45 1 4.5 9.2 5.4
34 0 3.4 4.5 9.0
2 0 3.5 7.8 0.7
56 1 5.6 7.6 0.7
还有一个像这样的文件 B.txt(真正的有大约 600 行):
45
2
我想从 A.txt 中删除 ID 与文件 B.txt 中的 ID 匹配的所有行。预期输出(文件 C.txt):
ID SEX A B C
34 0 3.4 4.5 9.0
56 1 5.6 7.6 0.7
我在想这样的事情: grep -v -f B.txt A.txt > C.txt
但是这个脚本没有指定A.txt的列
【问题讨论】:
-
将“列表”文件转换为
'/^2$/d'之类的记录(每行一个)并提供给sed之类的sed -f "listFile" mainFile > outputFile。您可以使用sed 's:.*:/^&$/:' baseList > listFile之类的内容修复“listFile”。只在副本上工作!抱歉join建议(现已删除),我错过了 70,000 列的事情。祝你好运。