>> |
No.14891
Файл: shot0024.png -(399 KB, 960x720, shot0024.png)
>>14636
> sed может делать всё то же, что и grep
$ grep -P '\p{P}?\p{Cyrillic}\p{P}?' <<<'‘You’re full of shit’ – сказалъ я с позированнымъ взглядомъ. Гдѣ ж ты набрался такого, Ѳетюкъ?'
$ grep -P '\p{P}(?=\w)|\p{P}(?<=\w)' <<<'‘You’re full of shit’ – сказалъ я с позированнымъ взглядомъ.
$ grep -P '(?i)(?|(цалуй)|(лобызай))-\1 лягушонку!' <<<'Цалуй-цалуй лягушонку! Лобызай-лобызай лягушонку!'
Ваш ход, маэстро.
> тащить в скрипт лишнюю зависимость — плохая идея
Это да, нефиг юзать
$ grep -q '^Found$' <<<'Found' && found=t
когда можно православным седом
$ sed -rn 's/^Found$/&/;T;Q1' <<<'Found' || found=t
Красота же. И читабельность на уровне!
> на операционках с rc это дурной тон, там системный интерпретатор — sh
Я надеюсь, вы мох регулярно с пекарен счищаете в своей конторе? А то не дай бог в вентилятор попадёт, у-у…
>>14637
> Я использую grep для МНОГОСТРОЧНЫХ РЕГУЛЯРНЫХ ВЫРАЖЕНИЙ (с ключом -P).
sed тоже может обрабатывать многострочные паттерны. Вопрос в том, искать тебе надо или заменять что-то в них. Если последнее, то лучше, конечно, sed.
> sed такого не может, насколько мне известно.
Один пример. http://www.rtfiber.com.tw/~changyj/sed/html/p.20051024a.html
> sed не вернет мне ненулевой код завершения если ничего не было найдено
Я иногда пользуюсь костылём, когда нужно что-то найти, заменить и сказать получилось ли. Если нужно только найти лучше grep -q.
> Ну, в первой строке у меня написано #!/bin/sh вообще-то.
Нельзя так писать, если не пишешь под POSIX shell. Пишешь для баша? Так и пиши #! /usr/bin/env bash
> Правда я использую штуки вроде ${variable} местами, как и $(code with output) для заполнения переменных, как и наверно что-то еще не свойственное чистому Bourne Shell.
То, что ты написал — это как раз стандартный POSIX shell. Башизмы это когда ${var/abc/def},
echo true или ref_list=${!ref*}, например.
>>14642
> вообще, если так нужны PCRE, стоит задуматься о том, не переписать ли всё на PERL
И ебаться с файлами и потоками вместо >file <file < <(find …) ?
Сам топи урановые ломы.
> он вернёт пустую строку, проверяешь её: [ -z "$string" ] — если строка пустая; [ "$string" ] — если строка не пустая
man bash открывал вообще?
[ "$str" ] && { echo doing job; echo ok; } || { echo doing other job; echo fail; }
|