gpt4 book ai didi

bash - 根据匹配多个值之一的列提取行

转载 作者:行者123 更新时间:2023-11-29 09:46:52 24 4
gpt4 key购买 nike

我有一些包含以下数据的文件:

 160-68 160 68 B-A 0011 3.80247
160-68 160 68 B-A 0022 3.73454
160-69 160 69 B-A 0088 2.76641
160-69 160 69 B-A 0022 3.54446
160-69 160 69 B-A 0088 4.24609
160-69 160 69 B-A 0011 3.97644
160-69 160 69 B-A 0021 1.82292

我需要在第 5 列的数组中提取具有任何值(可以为负数:ex -12222)的行。

[0088, 0021] 的输出:

160-69 160 69 B-A 0088 2.76641
160-69 160 69 B-A 0088 4.24609
160-69 160 69 B-A 0021 1.82292

我目前正在使用 Ruby 执行此操作,但有没有一种方法可以使用 Bash 更快地执行此操作?

谢谢。

最佳答案

bash 不太可能比 ruby​​ 快:bash 通常很慢。我会选择 awk 或 perl

awk -v values="0088 0021" '
BEGIN {
n = split(values, a)
for (i=1; i<=n; i++) b[a[i]]=1
}
$5 in b
' file
perl -ane 'BEGIN {%v = ("0088"=>1, "0021"=>1)} print if $v{$F[4]}' file

关于bash - 根据匹配多个值之一的列提取行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35107947/

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