我试图在当前目录中查找包含特定字符串的文件,并将所有这些文件复制到一个新目录中。
我正在尝试使用的凭证
grep *Qtr_1_results*; cp /data/jobs/file/obj1
我无法复制,输出消息是:
Usage: cp [-fhipHILPU][-d|-e] [-r|-R] [-E{force|ignore|warn}] [--] src target
or: cp [-fhipHILPU] [-d|-e] [-r|-R] [-E{force|ignore|warn}] [--] src1 ... srcN directory
最佳答案
编辑:清理后(见评论)...
cp *Qtr_1_results* /data/jobs/file/obj1
你所做的只是徒劳的 greping。使用 ;
结束命令,cp
打印错误消息,因为您只提供源,而不提供目标。
您要做的是以下内容。首先,您要 grep 查找文件名,而不是字符串(您没有提供)。
grep -l the_string_you_are_looking_for *Qtr_1_results*
-l
选项为您提供文件名,而不是找到 the_string_you_are_looking_for
的行。在这种情况下,grep
将搜索文件名包含 Qtr_1_results
的所有文件。
然后你想将 grep
的输出发送到 while
循环来处理它。您可以使用管道 (|
) 执行此操作。分号 ;
只是结束行。
grep -l the_string_you_are_looking_for *Qtr_1_results* | while read -r filename; do cp $filename /path/to/your/destination/folder; done
在while
循环中,read -r
会将grep
的输出放入变量filename
中。当你给一个变量赋值时,你只需写下变量的名称。当你想获得变量的值时,你在它前面放一个$
。
关于linux - 使用 Linux 查找包含特定字符串的文件并复制到目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52451220/