The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"команда sed"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"команда sed"  +/
Сообщение от buganych email(ok) on 19-Май-11, 21:48 
Помогите пожалуйста разобраться c командой sed в программе. Программа проверяет текстовый
файл и выводит частоту повторений в нем слов.
И подскажите, пожалуйста, как сделать чтобы программа выводила на экран не количество,
а процент повторений.
Заранее спасибо.
программа slovarj.sh
текстовый файл testfile

ARGS=1
E_BADARGS=65
E_NOFILE=66

if [ $# -ne "$ARGS" ]  # Файл для анализа задан?
then
  echo "Порядок использования: `basename $0` filename"
  exit $E_BADARGS
fi

if [ ! -f "$1" ]       # Проверка существования файла.
then
  echo "Файл \"$1\" не найден."
  exit $E_NOFILE
fi

# main ()
#не могу разобраться что программа делает ниже
sed -e 's/\.//g'  -e 's/ /\
/g' "$1" | tr 'A-Z' 'a-z' | sort | uniq -c | sort -nr


exit 0

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "команда sed"  +/
Сообщение от allez (ok) on 20-Май-11, 05:01 
Вы на каком курсе и по какой специальности учитесь?

P. S. А sed у вас производит две глобальных замены одного символа на другой.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "команда sed"  +/
Сообщение от buganych email(ok) on 21-Май-11, 15:31 
> Вы на каком курсе и по какой специальности учитесь?

2 курс инженер электронной техники

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "команда sed"  +/
Сообщение от LSTemp (ok) on 26-Май-11, 19:05 
>> Вы на каком курсе и по какой специальности учитесь?
> 2 курс инженер электронной техники

значит не все портеряно - процент вычислить сможете)

PS
[root@local sysconfig]# echo $((100 / 10))
10


Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "команда sed"  +/
Сообщение от LSTemp (ok) on 26-Май-11, 19:24 
>[оверквотинг удален]
> if [ ! -f "$1" ]      
> # Проверка существования файла.
> then
>   echo "Файл \"$1\" не найден."
>   exit $E_NOFILE
> fi
> # main ()
> #не могу разобраться что программа делает ниже
> sed -e 's/\.//g'  -e 's/ /\
> /g' "$1"

заменяет все точки на пустое место (удаляет), потом пробелы

| tr 'A-Z' 'a-z'

переводит все символы в нижний регистр (диапазон A-Z=>a-z)

| sort |

сортирует вывод (по умолчанию - по алфавиту - для этого очевидно и привод символов в нижний регистр перед этим)

uniq -c |

удаляет повторяющиеся строки и выводит п/д строкой количество повторений: кол-во пробел строка

> sort -nr

сортирует строки по количеству вхождения (по кол-ву из предыдущей команды)

> exit 0

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру