复制至少提及一个特定单词的文件

时间:2019-06-27 12:36:33

标签: bash shell loops if-statement grep

我想浏览一个目录中的10万多个文本文件,并将仅包含列表中至少一个单词的文件复制到另一个目录。

我尝试用grep和cp做一个if语句,但是我不知道如何使它以这种方式工作。

for filename in *.txt 
do 
grep -o -i "cultiv" "protec" "agricult" $filename|wc -w 
if [ wc -gt 0 ]
then cp $filename ~/desktop/filepath
fi 
done

显然这是行不通的,但我不知道如何存储wc结果,然后将其与0进行比较,仅对那些文件起作用。

1 个答案:

答案 0 :(得分:3)

使用f = expression(1+ 2 * x + (x <= 1) * 3*x^2) s = expression(2^2) solution <- sde.sim(X0=0.6, t0=0, N=2000, delta=0.01, drift = f, sigma = s) 选项使-l打印所有与模式匹配的文件名。然后使用grep将它们作为参数传递给xargs

cp

grep -l -E -i 'cultiv|protec|agricult' *.txt | xargs cp -t ~/desktop/filepath -- 选项是GNU -t扩展,它允许您将目标目录放在第一位,以便它可以与cp一起使用。

如果您使用的版本不带该选项,则需要在xargs中使用-J选项来代替命令中间的内容。

xargs