Решено: sed -n "/^[^oe]*$/p" data.txt

Модератор: Модераторы разделов

qip
Сообщения: 5
ОС: Xubuntu

Решено: sed -n "/^[^oe]*$/p" data.txt

Сообщение qip »

sed -n "/^[^oe]*$/p" data.txt
кто нибудь может обьяснить пошагово, как
эта комманда работает.
мне не понятно зачем нужен $ в конце и ^ в самом начале.
Спасибо сказали:
spielmann
Сообщения: 105
ОС: Linux

Re: Решено: sed -n "/^[^oe]*$/p" data.txt

Сообщение spielmann »

qip писал(а):
05.07.2007 04:08
sed -n "/^[^oe]*$/p" data.txt
кто нибудь может обьяснить пошагово, как
эта комманда работает.
мне не понятно зачем нужен $ в конце и ^ в самом начале.


Хммм... Стока, в которой нет "о" и "е". Первое ^ - начало строки; второе - символы кроме указанных [^oe]; $ - конец строки.

Пошагово:
1. Начинается (^) не с символов о или е ([^oe]).
2. Не содержит о или е ([^oe]*).
3. Не заканчивается на о или е ([^oe]*$).
4. Вывести строку (/p), если удовлетворяет всем условиям.

Вроде так.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Решено: sed -n "/^[^oe]*$/p" data.txt

Сообщение serzh-z »

Ну вообще-то не "Не содержит о или е ([^oe]*)", а любая строка, которая *не начинается* с символа "o" или "e".
Спасибо сказали:
spielmann
Сообщения: 105
ОС: Linux

Re: Решено: sed -n "/^[^oe]*$/p" data.txt

Сообщение spielmann »

serzh-z писал(а):
05.07.2007 12:44
Ну вообще-то не "Не содержит о или е ([^oe]*)", а любая строка, которая *не начинается* с символа "o" или "e".


[^символ] = всё, кроме...
^[символ] = начинается с...
^[^символ] = начинается не с...
* = повторение указанного ранее...
[^символ]* = не содержит в середине строки (любой в середине строки, кроме указанных)...
$ = оканчивается на то, что укзано ранее...
[^символ]*$ = заканчивается на любой, кроме указанного...

В итоге: не начинается, не содержит и не оканчивается символами "о" и "е".
Спасибо сказали:
qip
Сообщения: 5
ОС: Xubuntu

Re: Решено: sed -n "/^[^oe]*$/p" data.txt

Сообщение qip »

Thanks a lot! :)
Спасибо сказали:
Аватара пользователя
Jan2ary
Бывший модератор
Сообщения: 630
Статус: Тщедушный очкарик

Re: Решено: sed -n "/^[^oe]*$/p" data.txt

Сообщение Jan2ary »

spielmann, не вводи в заблуждение, после этого человек только путаться будет.

^ - матчит (англ. match) началo строки
[^...] - здесь ^ - символ отрицания, матчит все символы, кроме перечисленных после него в скобках.
$ - матчит конец строки.
Не шалю, никого не трогаю, починяю примус...
Спасибо сказали: