Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Поиск в файле двух одинаковых слов  (Прочитано 1443 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн pomko_Ky

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Есть директория в которой находятся файлы и 3 папки. В 1 папку перемещаем файлы,не содержащие строку с заданным словом,во 2- файлы с одной такой строкой,в 3 -с двумя.
Проблема с определением 2 одинаковых строк.
Может есть у грепа параметр на повторение подстрок или как-то надо юзать sort и uniq
C языком мало знаком.

# В 3 - повтр стрк
find . -type f -exec grep -c -w "$2"./ '{}' \; -exec mv '{}' /"$str"/3/ \;
# В 2 - с однй стрк
find . -type f  -exec grep  --exclude-dir=/"$str"/3/ "$2" '{}' \; -exec mv '{}' /"$str"/2/" \;
# В 1 - файл без условий
find . -type f -exec grep -v "$2" '{}' \; -exec mv '{}' /"$str"/1/ \;
exit

Оффлайн Phlya

  • Старожил
  • *
  • Сообщений: 2219
  • Фля, Цыганский барон, Винни Пух
    • Просмотр профиля
Re: Поиск в файле двух одинаковых слов
« Ответ #1 : 17 Мая 2012, 20:44:14 »
Обязательно на баше это писать?
Ubuntu 14.04 (Unity), MSI GE40

Оффлайн pomko_Ky

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: Поиск в файле двух одинаковых слов
« Ответ #2 : 17 Мая 2012, 20:57:46 »
Обязательно на баше это писать?
К сожалению,да

Оффлайн Phlya

  • Старожил
  • *
  • Сообщений: 2219
  • Фля, Цыганский барон, Винни Пух
    • Просмотр профиля
Re: Поиск в файле двух одинаковых слов
« Ответ #3 : 17 Мая 2012, 21:01:16 »
Это грустно... Подождите, может, кто-нибудь поможет, тут встречаются знатоки =)
Ubuntu 14.04 (Unity), MSI GE40

Оффлайн RazrFalcon

  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: Поиск в файле двух одинаковых слов
« Ответ #4 : 17 Мая 2012, 21:31:51 »
cat file | grep 'keyword' | wc -lполучим количество строк со словом keyword в файле
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн pomko_Ky

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: Поиск в файле двух одинаковых слов
« Ответ #5 : 17 Мая 2012, 22:04:05 »
cat file | grep 'keyword' | wc -lполучим количество строк со словом keyword в файле
Допустим я знаю,сколько у меня файлов и буду использовать цикл,как мне указать любой файл и вернуть полученное значение в переменную,знаю что лол-вопросы ,но все же.
while(i -lt 4)
do
cat /123/3/'?' | grep "$2" | wc -l  '{}' \; -exec $i='{}'

 

Оффлайн unimix

  • Активист
  • *
  • Сообщений: 537
    • Просмотр профиля
Re: Поиск в файле двух одинаковых слов
« Ответ #6 : 18 Мая 2012, 00:56:23 »
Код: (bash) [Выделить]
for file in `ls dir/*`; do count=`cat $file | grep 'keyword' | wc -l`; echo $file $count; done;
Пользователь решил продолжить мысль 18 Мая 2012, 01:09:59:
Код: (bash) [Выделить]
for file in `grep -c 'keyword' dir/*`; do count=`echo $file | cut -f2 -d':'`; file=`echo $file | cut -f1 -d':'`; echo $file $count; done;
« Последнее редактирование: 18 Мая 2012, 01:09:59 от unimix »

 

Страница сгенерирована за 0.065 секунд. Запросов: 25.