URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6479
[ Назад ]

Исходное сообщение
"Поиск в файле по шаблону"

Отправлено MAVMAV , 21-Май-07 10:08 
Подскажите как вывести список файлов(текстовых) у которых скажем третья строка в тексте равняется какой нибудь заранее введеной переменной
а то grep ищет по всему файлу

Содержание

Сообщения в этом обсуждении
"Поиск в файле по шаблону"
Отправлено idle , 21-Май-07 12:03 
>Подскажите как вывести список файлов(текстовых) у которых скажем третья строка в тексте
>равняется какой нибудь заранее введеной переменной
>а то grep ищет по всему файлу
head -3 file | tail -1 выведет 3строку из файла, её и грепайте.



"Поиск в файле по шаблону"
Отправлено MAVMAV , 21-Май-07 13:47 
>>Подскажите как вывести список файлов(текстовых) у которых скажем третья строка в тексте
>>равняется какой нибудь заранее введеной переменной
>>а то grep ищет по всему файлу
>head -3 file | tail -1 выведет 3строку из файла, её и
>грепайте.
а если нужно чтоб вместо одного файлы был список от команды dir или  ls



"Поиск в файле по шаблону"
Отправлено vic , 21-Май-07 14:02 
>а если нужно чтоб вместо одного файлы был список от команды dir
>или  ls

for i in `ls *.cc` ; do head -3 $i | tail -1 | grep 'what' ; done



"Поиск в файле по шаблону"
Отправлено MAVMAV , 22-Май-07 06:37 
>>а если нужно чтоб вместо одного файлы был список от команды dir
>>или  ls
>
>for i in `ls *.cc` ; do head -3 $i | tail
>-1 | grep 'what' ; done
спасибою
она выдает список строк какие нашли
а если нужен список файлов где было найдена фраза?

for i in `ls *.cc` ; do head -3 $i | tail -1 | grep 'what' *; done
выдает что то много лишнего (как у меня вместо 2 имен файлов выдает их же но раз 20 повторяя)


"Поиск в файле по шаблону"
Отправлено MAVMAV , 22-Май-07 10:01 
>>>а если нужно чтоб вместо одного файлы был список от команды dir
>>>или  ls
>>
>>for i in `ls *.cc` ; do head -3 $i | tail
>>-1 | grep 'what' ; done
>спасибою
>она выдает список строк какие нашли
>а если нужен список файлов где было найдена фраза?
>
>for i in `ls *.cc` ; do head -3 $i | tail
>-1 | grep 'what' *; done
>выдает что то много лишнего (как у меня вместо 2 имен файлов
>выдает их же но раз 20 повторяя)


for i in `ls *.txt` ; do head -4 $i | tail -1 | grep -il '11'  ; done
выдает что найдено в трех файлах но вместо их имен выдает
(standard input)
(standard input)
(standard input)
а как получить список файлов?


"Поиск в файле по шаблону"
Отправлено perece , 22-Май-07 10:06 
for i in `ls *.txt` ; do if head -4 $i | tail -1 | grep -i '11' >/dev/null; then echo $i; fi; done

\^P^/


"Поиск в файле по шаблону"
Отправлено MAVMAV , 23-Май-07 22:59 
>for i in `ls *.txt` ; do if head -4 $i | tail -1 | grep -i '11' >/dev/null; then echo $i; fi; done
>
>\^P^/
спасибо то что надо,
еще вопросик - если в текстовом файле есть список текстовых файлов (по одному файлу на строке) как вывести в цикле последовательно содержимое перечисленных файлов?


"Поиск в файле по шаблону"
Отправлено V , 23-Май-07 23:42 
>>for i in `ls *.txt` ; do if head -4 $i | tail -1 | grep -i '11' >/dev/null; then echo $i; fi; done
>>
>>\^P^/
>спасибо то что надо,
>еще вопросик - если в текстовом файле есть список текстовых файлов (по
>одному файлу на строке) как вывести в цикле последовательно содержимое перечисленных
>файлов?


там посмотрите, похожий вопрос https://www.opennet.ru/openforum/vsluhforumID9/6491.html


"Поиск в файле по шаблону"
Отправлено x_o_x , 04-Июн-07 15:29 
fgrep

"Поиск в файле по шаблону"
Отправлено madar , 04-Июн-07 15:40 
>еще вопросик - если в текстовом файле есть список текстовых файлов (по
>одному файлу на строке) как вывести в цикле последовательно содержимое перечисленных
>файлов?

Подойдет? :)

# for i in `cat filelist.txt` ; do cat $i ; done


"Поиск в файле по шаблону"
Отправлено L0n3R4ng3r , 07-Июн-07 16:37 
>>>>а если нужно чтоб вместо одного файлы был список от команды dir
>>>>или  ls
>>>
>>>for i in `ls *.cc` ; do head -3 $i | tail
>>>-1 | grep 'what' ; done
>>спасибою
>>она выдает список строк какие нашли
>>а если нужен список файлов где было найдена фраза?
>>
>>for i in `ls *.cc` ; do head -3 $i | tail
>>-1 | grep 'what' *; done
>>выдает что то много лишнего (как у меня вместо 2 имен файлов
>>выдает их же но раз 20 повторяя)
>
>
>for i in `ls *.txt` ; do head -4 $i | tail
>-1 | grep -il '11'  ; done
>выдает что найдено в трех файлах но вместо их имен выдает
>(standard input)
>(standard input)
>(standard input)
>а как получить список файлов?

find . -maxdepth 1 -name "*.txt" -exec grep what -l '{}' \;


"Поиск в файле по шаблону"
Отправлено L0n3R4ng3r , 07-Июн-07 16:41 
сорри немного провтыкал:(