Использование трубы STDOUT в качестве переменной?

Вы можете использовать https://www.dnsleaktest.com / . Он показывает ваш ip-адрес и положение этого.

3
12.08.2018, 17:09
2 ответа

Как заменить a на во второй строке, а затем продолжить конвейер?

Сначала исправьте sedтак, чтобы он соответствовал всем as, событию как началу и концу.

sed -r -e 's/(^| )a($| )/\1the\2/g'

Затем сделайте так, чтобы он совпадал только в строке 2

sed -r -e '2 s/(^| )a($| )/\1the\2/g'

Теперь вы можете сделать

echo -e 'Going to the movies can be fun.
When a dog found a cat a trouble began.
Do not text while driving please.' | sed -r -e '2 s/(^| )a($| )/\1the\2/g' | less

Другое решение

Сначала сбросьтеcat

catпросто открывает файл и передает его на свой вывод, который затем передается следующей команде. Мы можем заставить оболочку открыть файл и направить его на ввод команды next (now first ), используя перенаправление ввода -(<). Мы можем записать это как command args <input-fileили <input-file command args. Неважно, где в команде мы поместили <input-file. Сначала я поставил перенаправление, чтобы строку канала -можно было прочитать слева направо.

< example head -2 | tail -1 | sed 's/ a / the /g'

Альтернатива (, которая делает то же самое):

head -2 <example | tail -1 | sed 's/ a / the /g'

они делают то же самое, что и следующие, но на один процесс меньше.

cat example | head -2 | tail -1 | sed 's/ a / the /g'

Следующая инкапсуляция :Здесь мы заключаем в скобки 3 команды, затем мы можем направить вывод всех 3 в другую команду (здесь я использую меньше ).

{  
  < example head -1
  < example head -2 | tail -1 | sed 's/ a / the /g'
  < example tail -1
} | less
2
27.01.2020, 21:21

Подстановка команд - это путь (, как и с $middle), но ИМХО просто через sedв этих ситуациях проще.

Сказав, что :я знаю, что вы только учитесь, но объединение head, tailи sedвряд ли когда-либо необходимо.Ваш пример может быть выражен в чистом виде sedкак

sed -n '2s/ a / the /gp' example
  • -nподавляет вывод по умолчанию
  • 2соответствует второй строке
  • s/ a / the /gзаменяет все ("g"глобальные )вхождения a.
  • pраспечатывает результат
1
27.01.2020, 21:21

Теги

Похожие вопросы