LINUX.ORG.RU

Сообщения kimalex

 

Регулярные выражения

Форум — General

Доброго времени. Для начала подскажите, пожалуйста, как можно более четко выделить участки текста, выделение цветом вообще не нашел, пробовал выделить жирным курсивом, но к сожалению, *** которые указаны в инструкции, дают только *** , а не жирный курсив. ** действительно работают, поэтому выделил пока только ими - но их практически не видно….

Начал изучать регулярные выражения, помогите, пожалуйста, новичку)

Имеем два варианта команды:

echo "Такие вОт раЗНые 245 слова бывают 89 в наШеМ предЛОЖении КРОМЕ" | grep -E "[[:lower:]][[:upper:]]"

Такие вОт раЗНые 245 слова бывают 89 в наШеМ предЛОЖении КРОМЕ

Тут я могу предположить, что мы тут имеем две квадратные скобки, в которых есть либо [:lower:] либо [:upper:], по одному символу в каждой, и выбрать должно неразрывное сочетание «малыйБОЛЬШОЙ» символы

и второй вариант:

echo "Такие вОт раЗНые 245 слова бывают 89 в наШеМ предЛОЖении КРОМЕ" | grep -E "[[:lower:][:upper:]]"

Такие вОт раЗНые 245 слова бывают 89 в наШеМ предЛОЖении КРОМЕ

А вот здесь я вообще не понял, по какому принципу выбрался текст, окрасились все буквы, кроме цифр

 

kimalex
()

Различие между конвейером и exec

Форум — General

Доброго времени суток.

Помогите, пожалуйста новичку, разобраться, в чем основная разница между передачей результатов одной команды на другую через | и через exec. Мне казалось, что вроде бы понял, но попробовал запустить банальный поиск файлов определенного размера в системе:

find / -type f -size +1G

всё отработалось без вопросов, 4 файла было найдено. Дальше решил передать их на ls

find / -type f -size +1G | ls -lah

и получил целую простыню результатов из файлов по 70, 100 и т.д. кБ (!), и среди них ни одного, которые нашла первая часть поиска. Ведь конвейер должен был передать на ls свои, 4 файла, и дальнейшая работ ls должна была быть с ними?

А вот если сделать:

find / -type f -size +1G -exec ls -lah {} \;

то здесь все без вопросов, ls отработала как положено.

Кстати, если конвейер запускать через xargs, то тоже все отрабатывается нормально:

find / -type f -size +1G | xargs ls -lah

почему же

find / -type f -size +1G | ls -lah

выводит какую-то ересь, но не сообщает об ошибках, если на то пошло?

Помогите разобраться, пожалуйста

 

kimalex
()

RSS подписка на новые темы