The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

редактирование текста, Naiv (ok), 27-Май-04, (0) [смотреть все]

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


1. "редактирование текста"  +/
Сообщение от vnpemail (?), 27-Май-04, 22:08 
>Подскажите, пожалуйста, как в shell при помощи стандартных утилит grep, tr, sed
>
>1) из строки вернуть символы, начиная с n-го символа по k-й;

sed -e "s/\(.\{$k\}\).*/\1/" -e "s/.\{$n\}\(.*\)/\1/"

>2) частный случай - первые n символов;

sed -e "s/\(.\{$n\}\).*/\1/"

>3) вернуть символы начиная с первого найденного символа NNh и заканчивая
>первым найденным символом KKh.

sed -e "s/[^"$'\xNN'"]*\("$'\xNN'"[^"$'xKK'"]*"$'xKK'"\).*/\1/"

>и еще: правильно я понимаю, что утилитой sed можно выполнить все те
>же функции, что и утилитами grep, tr ?


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

2. "редактирование текста"  +/
Сообщение от WaprOldemail (ok), 28-Май-04, 02:00 
>>Подскажите, пожалуйста, как в shell при помощи стандартных утилит grep, tr, sed
>>1) из строки вернуть символы, начиная с n-го символа по k-й;
А если не пользоваться sed-ом? ;-)

1. например в bash-е
n=3
Line="Строка"
rock=${Line:2:$n}

>>2) частный случай - первые n символов;
2. там-же
Line="Строка"
Lin=${Line:0:$n}

3. сразу не соображу, но подозреваю что тоже можно.

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

3. "редактирование текста"  +/
Сообщение от Naiv (ok), 28-Май-04, 19:01 
>>Подскажите, пожалуйста, как в shell при помощи стандартных утилит grep, tr, sed
>>
>>1) из строки вернуть символы, начиная с n-го символа по k-й;
>
>sed -e "s/\(.\{$k\}\).*/\1/" -e "s/.\{$n\}\(.*\)/\1/"
>
>>2) частный случай - первые n символов;
>
>sed -e "s/\(.\{$n\}\).*/\1/"
>
>>3) вернуть символы начиная с первого найденного символа NNh и заканчивая
>>первым найденным символом KKh.
>
>sed -e "s/[^"$'\xNN'"]*\("$'\xNN'"[^"$'xKK'"]*"$'xKK'"\).*/\1/"
>
>>и еще: правильно я понимаю, что утилитой sed можно выполнить все те
>>же функции, что и утилитами grep, tr ?

спасибо большое! работает.
есть еще несколько вопросов:

1) как с помощью sed узнать количество строк в файле?
2) как с помощью sed вернуть порядковый номер строки, в которой впервые встречается образец 'text'?

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

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

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




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

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