Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

LINUX. Как эти три операции сделать в одну строку? Не используя перекладочные файлы

Вячеслав Мозгалин Знаток (349), на голосовании 1 год назад
Задание звучит так:
Используя команды grep, cut и sort, получить список имѐн тех файлов в каталоге
/etc/, в тексте которых содержится запись ip-адреса. Список имен файлов не
должен иметь повторений. Результат занести в файл g_ip.

Не могу понять, как это всё сделать в одну строку, одной командой.
Делал вот так:

grep -r "192.168" /etc > /home/sadmin/l1/g1

cut -d ':' -f 1 /home/sadmin/l1/g1 > /home/sadmin/l1/g2

sort -u /home/sadmin/l1/g2 > /home/sadmin/l1/g_ip

прошу помощи, кто подскажет?
Голосование за лучший ответ
Саша Серонов Профи (930) 1 год назад
Для выполнения всех трех операций в одной строке можно использовать конструкцию командного потока с использованием символа пайпа |. Вот как это можно сделать:
 grep -r "192.168" /etc | cut -d ':' -f 1 | sort -u > /home/sadmin/l1/g_ip  

В этой команде результат вывода команды grep передается вводу команды cut, а затем результат вывода команды cut передается вводу команды sort. Результат сортировки вывода команды sort записывается в файл /home/sadmin/l1/g_ip.

Таким образом, все три операции выполняются последовательно в одной строке командной оболочки Linux.
Федор НовиковИскусственный Интеллект (361409) 1 год назад
они выполняются почти одновременно, т.е. первая программа выдала данные в буфер, а следующая программа сразу начинает их обрабатывать
Саша Серонов Профи (930) Федор Новиков, если надо чтобы было одновременно то:
 grep -r "192.168" /etc | cut -d ':' -f 1 | sort -u > /home/sadmin/l1/g_ip  
Вячеслав МозгалинЗнаток (349) 1 год назад
Спасибо!! Не работало у меня , видимо по причине того, что пробелы не поставил.
Похожие вопросы