【发布时间】:2011-03-10 01:20:21
【问题描述】:
我认为这只是一个简单的命令,但我根本无法找到解决方案
我想用标签(由多行分隔)对文件进行分类
文件1
aaa
bbb
ded
然后将这些 TAGS(逐行)grep 到单个文件中,我们称之为 TargetFile
我所做的如下:
cat File1 | xagrs grep {} TargetFile
它不对 TargetFile 执行 grep。我该怎么做?
我现在正在使用mobaxterm
【问题讨论】:
我认为这只是一个简单的命令,但我根本无法找到解决方案
我想用标签(由多行分隔)对文件进行分类
文件1
aaa
bbb
ded
然后将这些 TAGS(逐行)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
【讨论】:
我想我在其他论坛搜索后找到了答案
> 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
【讨论】: