LINUX.ORG.RU

Скрипт. Поиск файлов с кол-вом строк меньше заданного


0

1

Всем привет!
Учусь вот на курсах, был тест, не сумел быстро ответить на вопрос.(к тому же тест был не в терминале а в блокноте). Вот посидел дома, наваял. Есть пара вопросов.
Задание: напишите скрипт поиска определенных файлов в определенном каталоге в которых будет содержаться строк меньше чем задано параметром. Вывод должен быть «файл - кол-во строк».
Вопросы:
1. Подскажите ваши мысли по поводу того, как еще можно сделать скрипт. Например без awk. Когда я с awk познакомился - уперся в него и нет гибкости в голове совсем.
2. Не могу корректно передать параметру pName значение например *.log, приходится передавать \*.log. Перепробовал все формы скобок - без результата.


Скрипт:

#!/bin/bash

pPath=$1 #путь к папке в которой осуществляется поиск

pName=$2 #имя файла

read -p "ВВедите максимальное кол-во строк в файле: " pLine #запрос на ввод макс. кол-ва строк

pFile=$(find ${pPath} -type f -name "${pName}") #поиск файлов

wc -l ${pFile} | sed '$d' | awk '{if ($1 < '${pLine}') print $2 "\t" $1}' | column -t #парсинг сравнение и вывод

#!/bin/sh
lines_count=3

tst(){ [ $1 -lt $lines_count ]&& echo $@;}

wc -l *.txt |while read f;do
  tst $f;done
anonymous ()
perl -le 'print for grep `wc -l $_` > 3, <*.txt>'
Deleted ()

$ while read NL FN; do (( NL >= 7 )) && break; echo "$NL $FN"; done< <(find -type f -exec wc -l {} \; | sort -n)

Перепробовал все формы

метод тыка тут не работает

emulek ()
find . -type f -exec bash -c 'lc=`sed -n $= {}`; [ $lc -lt 1900 ] && echo "{} - $lc"' \;
deterenkelt ()

Спасибище! Вы офигенны, буду изучать

dimdiden ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.