gpt4 book ai didi

linux - 在终端中搜索文本文件

转载 作者:太空宇宙 更新时间:2023-11-04 10:51:33 24 4
gpt4 key购买 nike

嗨,这对很多人来说可能是一个基本问题,但它已经占用了我几个小时的时间。

我有一个大数据文件作为运行脚本的输出。该文件包含大约 15 列和大约 100,000 行。我希望搜索文件并在第 4、5、6、7 和 8 列中检查特定值(和字符串)。我知道我可以单独剪切列并查看它们或在 less 命令中使用前向搜索(“/”)。这里的问题是第二和第三列也将包含我搜索的值(几乎每隔一行)。我只需要第 4、5、6、7 和 8 列中的值来解释结果,而且我还需要查看相邻的列。我怎样才能做到这一点?我不想使用任何外部语言,例如 R、python 或 perl,我正在寻找使用命令行命令的解决方案。

我使用以下命令查看文件;

bzcat myfile.tsv.bz2 | column -t | less -S 

任何输入将不胜感激。

数据的示例; (是特定区间内的生物数据)

col1 strt  end Sample1 Sample2 Sample3 Sample4 Sample5 p.val1 p.val2 .   ID 

ABC 1100 1200 2 2 2 2 3 NA 0.27403 PLD4
BCD 1200 1300 4 3 4 4 2 0.88831 0.37662 CYP46A1
CDE 1300 1400 2 1 4 2 1 0.77922 0.00519 CEBPE
DEF 1400 1500 6 4 4 4 4 0.88182 NA BRCA
EFG 1500 1600 2 6 8 10 3 0.00779 0.01558 BRCA

假设我想查看整个文件并限制我只搜索第 4、5、6、7 和 8 列。~M

最佳答案

直到您编辑您的问题以提供更多信息,这是您想要的吗?:

$ awk '$4==1 && $6==4' file
BCD 2 4 1 1 4 2

以上是针对您发布的示例输入文件运行的:

$ cat file
col1 srt end col4 col5 col6 col7
ABC 1 2 1 1 5 2
BCD 2 4 1 1 4 2
CDE 4 6 6 5 2 5
DEF 6 8 4 4 4 4
EFG 8 10 4 4 3 4

鉴于您在下面的评论,这是您想要的吗:

$ awk '{print $0 ($4==1 && $6==4 ? " <--- HERE I AM!" : "")}' file
col1 srt end col4 col5 col6 col7
ABC 1 2 1 1 5 2
BCD 2 4 1 1 4 2 <--- HERE I AM!
CDE 4 6 6 5 2 5
DEF 6 8 4 4 4 4
EFG 8 10 4 4 3 4

关于linux - 在终端中搜索文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30784226/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com