2014-11-27 4 views
0

новый Баш сценариев и пытается grep для строки в списке каталогов:Извлечение строки из имен файлов в файле

directory.txt содержит следующие

/apps/work/txt.out 
/apps/work/Monday.txt 
/apps/garbage/howdo.file 

То, что я хочу сделать, это для каждой строки в файле directory.txt, прочитайте файл и grep для строки.

Может кто-нибудь указать мне в правильном направлении?

+0

Каков ваш ожидаемый выход? –

+0

Я хочу, чтобы какой-либо из файлов в списке каталогов содержал слово BLOCK – user3866091

ответ

1

Должно быть так просто, как это:

search="BLOCK" 

while read -r filename; do 
    [ -f "$filename" ] && grep "$search" "$filename" 
done < directory.txt 

в то время как цикл получает входные данные из directory.txt, помещает каждую строку в переменную $filename, проверяет, является ли файл на самом деле существует, и если да, выполняет команду grep на него

+1

perfect! это именно то, что мне нужно было знать. – user3866091

0

Попробуйте сделать это:

cat directory.txt | xargs grep word 

Заменить word с собственным рисунком.

+0

Это возвращает полный путь к файлу, а также строку, которую я за ней. Это ведь подойдет мне лучше! Спасибо за помощь всем, я собираюсь поиграть с этим сейчас – user3866091

Смежные вопросы