sed -n "/^[^oe]*$/p" data.txt
кто нибудь может обьяснить пошагово, как
эта комманда работает.
мне не понятно зачем нужен $ в конце и ^ в самом начале.
Решено: sed -n "/^[^oe]*$/p" data.txt
Модератор: Модераторы разделов
-
spielmann
- Сообщения: 105
- ОС: Linux
Re: Решено: 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
Ну вообще-то не "Не содержит о или е ([^oe]*)", а любая строка, которая *не начинается* с символа "o" или "e".
-
spielmann
- Сообщения: 105
- ОС: Linux
Re: Решено: sed -n "/^[^oe]*$/p" data.txt
[^символ] = всё, кроме...
^[символ] = начинается с...
^[^символ] = начинается не с...
* = повторение указанного ранее...
[^символ]* = не содержит в середине строки (любой в середине строки, кроме указанных)...
$ = оканчивается на то, что укзано ранее...
[^символ]*$ = заканчивается на любой, кроме указанного...
В итоге: не начинается, не содержит и не оканчивается символами "о" и "е".
-
qip
- Сообщения: 5
- ОС: Xubuntu
Re: Решено: sed -n "/^[^oe]*$/p" data.txt
Thanks a lot! 
-
Jan2ary
- Бывший модератор
- Сообщения: 630
- Статус: Тщедушный очкарик
Re: Решено: sed -n "/^[^oe]*$/p" data.txt
spielmann, не вводи в заблуждение, после этого человек только путаться будет.
^ - матчит (англ. match) началo строки
[^...] - здесь ^ - символ отрицания, матчит все символы, кроме перечисленных после него в скобках.
$ - матчит конец строки.
^ - матчит (англ. match) началo строки
[^...] - здесь ^ - символ отрицания, матчит все символы, кроме перечисленных после него в скобках.
$ - матчит конец строки.
Не шалю, никого не трогаю, починяю примус...
Спасибо сказали: