我想浏览一个目录中的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进行比较,仅对那些文件起作用。
答案 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