我认为这只是一个简单的命令,但我根本无法找到解决方案
我想对带有标签的文件(由多行分隔)进行分类
文件 1
啊啊
啊啊
啊啊啊
然后将这些标签(逐行)grep到一个文件中,我们称之为TargetFile
我所做的如下:
cat File1 | xagrs grep {} TargetFile
它不对 TargetFile 执行 grep。我该怎么做?
我现在正在mobaxterm
使用
fgrep -f File1 TargetFile
还要注意没有 Cat 的无用用法。
像往常一样,不止一种方法:
xargs -n 1 grep Targetfile -e < File
cat File1 | xargs -I {} grep {} TargetFile
根据文件的大小,这将运行得更快:
cat File1 | parallel -j0 grep {} TargetFile
如果 File1 中的标签数小于您可以并行运行的进程数,则 TargetFile 只会从磁盘读取一次。如果 TargetFile 大于您的磁盘缓存,这可能是个好主意。
要了解有关 GNU Parallel 的更多信息,请参阅介绍视频:http ://www.youtube.com/watch?v=OpaiGYxkSuQ
well I think i found the answer after searching in other forums
> for i in `cat File1` ; do grep $i TargetFile; done
cat File1 | while read tag; do grep $tag TargetFile; done
cat File1 | xagrs -i grep {} TargetFile