在使用grep时发现错误,例如“ grep:非法选项”

时间:2018-08-29 12:07:38

标签: bash shell unix

我正在尝试从文件中读取记录,如果任何文件中都有字符串,请打印该文件。 代码:

while read line
do
find ./q/q*.q -type f -exec grep -ls $line {} +
donr< "file_name"

文件名的数据如下:

india
usa_k
in_va

在执行过程中,我得到grep: illegal option error

同一时间,我想将find的o / p存储在变量中。任何帮助

仅在循环中,我想连接$ line并找到o / p并直接在txt文件中。

编码如下:

$line | o/p find >> missing.txt

在i / p文件中,如果我们具有值“ INDIA”(如果该值在其他txt文件中可用),那么我要打印“在(文件名)中印度可用”并将此信息存储在txt文件中。我们需要对所有值进行此操作。

1 个答案:

答案 0 :(得分:1)

--放在选项终止符的前面,-e放在"$line"的扩展名之前,并引用该扩展名。这样可以防止将名称​​或搜索字符串作为选项读取。

while IFS= read -r line; do
  find ./q/q*.q -type f -exec grep -l -e "$line" -- {} + |
    while IFS= read -r matched_file; do
      echo "$line is available in $matched_file"
    done
done <file_name >results.txt