Найти результат команды, не будет писать в вывод - PullRequest
0 голосов
/ 12 июня 2018

У меня есть скрипт ниже, Нужно найти все PDF-страницы на сайте.PDF_Search_File.txt содержит URL-адрес файла PDF

Example : /static/pdf/pdf1.pdf
          /static/pdf/pdf2.pdf 

Но найдите результат, который не записывается в выходной файл. Там есть и выдайте строку ниже

find . -type f -exec grep -l '$name' '{}' \; >>output_pdf_new.txt

Любая информация поможет.

#!/bin/bash
filename="PDF_Search_File.txt"
while read -r line
do
        name="$line"
                echo "*******pdf******** - $name\n" >>output_pdf_new.txt
        find . -type f -exec grep -l '$name' '{}' \; >>output_pdf_new.txt
                echo "*******pdf******** - $name\n" >>output_pdf_new.txt
done < "$filename"

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

проблема в том, что поскольку ваше перенаправление вывода в файл эхо-файла не отображает текст, вы можете использовать tee -a для выполнения обоих действий, например:

#!/bin/bash
filename="PDF_Search_File.txt"
while read -r line
do
        name="$line"
        echo "*******pdf******** - $name" | tee -a output_pdf_new.txt
        find . -type f -exec grep -l "$name" '{}' \; | tee -a output_pdf_new.txt
        echo "*******pdf******** - ${name}" | tee -a output_pdf_new.txt
done < "$filename"
0 голосов
/ 12 июня 2018

Переменная $ name должна быть в двойных кавычках "$name" вместо одинарных кавычек.Это типичное поведение оболочки при работе с одинарными и двойными кавычками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...