Измените известные слова 1 и 3 строки, сохраняя неизвестное слово 2 постоянным

Опция -L делает именно это:

ssh -L 5005:localhost:5005 rmt.dev.host

Порт 5005 на вашем компьютере будет туннелирован в порт 5005 на удаленном хосте (localhostвыше считается относительно к ssh-серверу).

0
16.12.2018, 13:49
1 ответ

Строка замены в s/PATTERN/REPLACEMENT/не является регулярным выражением.

Вы сможете захватить то, что совпадает с частью шаблона, и использовать его при замене, если хотите:

sed -r 's/foo(.*)foo/hat\1car/g' file

Это захватит все, что находится между двумя вхождениями fooв одной строке, и вставит этот бит между hatи car. \1говорит: «вставьте все, что было захвачено первыми круглыми скобками».

Обратите внимание, что .*является «жадным», поэтому, если у вас есть foobarfoofoobarfoo, \1будет barfoofoobar, а не bar.

1
28.01.2020, 02:33

Теги

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