1

我认为这只是一个简单的命令,但我根本无法找到解决方案

我想对带有标签的文件(由多行分隔)进行分类

文件 1

啊啊
啊啊
啊啊啊

然后将这些标签(逐行)grep到一个文件中,我们称之为TargetFile

我所做的如下:

cat File1 | xagrs grep {} TargetFile

它不对 TargetFile 执行 grep。我该怎么做?

我现在正在mobaxterm使用

4

7 回答 7

3
fgrep -f File1 TargetFile

还要注意没有 Cat 的无用用法。

于 2011-08-05T04:10:33.100 回答
1

像往常一样,不止一种方法:

xargs -n 1 grep Targetfile -e < File
于 2011-03-10T12:03:35.843 回答
1
cat File1 | xargs -I {} grep {} TargetFile
于 2013-05-08T08:08:50.300 回答
0

根据文件的大小,这将运行得更快:

cat File1 | parallel -j0 grep {} TargetFile

如果 File1 中的标签数小于您可以并行运行的进程数,则 TargetFile 只会从磁盘读取一次。如果 TargetFile 大于您的磁盘缓存,这可能是个好主意。

要了解有关 GNU Parallel 的更多信息,请参阅介绍视频:http ://www.youtube.com/watch?v=OpaiGYxkSuQ

于 2011-03-10T14:09:11.450 回答
-1

well I think i found the answer after searching in other forums

> for i in `cat File1` ; do grep $i TargetFile; done
于 2011-03-10T07:17:29.000 回答
-1
cat File1 | while read tag; do grep $tag TargetFile; done
于 2011-08-05T11:33:37.503 回答
-1
cat File1 | xagrs -i grep {} TargetFile
于 2013-05-03T05:15:52.597 回答