Hoo*_*ked 6 search text-processing sort
我有两个排序的文件A
,B
其中的大小A
远大于B
,例如 A 是 100GB 而 B 是 50MB。我想很快确定是否有任何行B
中包含的A
,一旦匹配时停止。我目前有一个用于此的 python 脚本,但是当该过程必须针对不同的B
's重复数千次时,它运行缓慢。
使用,您可以使用和 fifocomm
获取在第一次匹配时返回的脚本:head
#!/bin/bash -e
[ -p tmpfifo ] || mkfifo tmpfifo
comm -12 A B | head -n1 >tmpfifo &
# If this wc is zero, no matches. Otherwise, a match was found.
# You can use this directly in the script, echo it,
# change the script exit value, or however else you need to use it.
wc -l tmpfifo
Run Code Online (Sandbox Code Playgroud)
目前,这将继续在后台执行通信,我很难找到PID
杀死的权利($!
正在给予head
而不是杀死comm
)。如果您确定这是唯一正在运行的通信,则可以使用killall
,但如果其他通信正在运行,则可能存在危险。