Вы можете использовать https://www.dnsleaktest.com / . Он показывает ваш ip-адрес и положение этого.
Сначала исправьте sed
так, чтобы он соответствовал всем a
s, событию как началу и концу.
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
Подстановка команд - это путь (, как и с $middle
), но ИМХО просто через sed
в этих ситуациях проще.
Сказав, что :я знаю, что вы только учитесь, но объединение head
, tail
и sed
вряд ли когда-либо необходимо.Ваш пример может быть выражен в чистом виде sed
как
sed -n '2s/ a / the /gp' example
-n
подавляет вывод по умолчанию 2
соответствует второй строке s/ a / the /g
заменяет все ("g"глобальные )вхождения a
. p
распечатывает результат