2016-05-11 2 views

ответ

1

можно сделать из директории, которую вы хотите проверить, рекурсивно:

find . -type f -exec bash -c '[[ $(sed -n '171p' "$1") =~ package ]] && echo "$1"' _ {} + 

это покажет вам имена файлов, которые содержат package в своей 171-й строчке.

нерекурсивно:

find . -maxdepth 1 -type f -exec bash -c '[[ $(sed -n '171p' "$1") =~ package ]] && echo "$1"' _ {} + 

Пример:

Ищу bar:

$ cat foo 
foo 
bar 

$ find . -type f -exec bash -c '[[ $(sed -n '2p' "$1") =~ bar ]] && echo "$1"' _ {} + 
./foo 
0
#This will search second line of all the files and grep over them. 
#Pass search pattern as argument. 

pattern=$1 

for file in * 

do 

cat $file |sed -n '2p' |grep $pattern 

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