Опция -L делает именно это:
ssh -L 5005:localhost:5005 rmt.dev.host
Порт 5005 на вашем компьютере будет туннелирован в порт 5005 на удаленном хосте (localhost
выше считается относительно к ssh-серверу).
Строка замены в s/PATTERN/REPLACEMENT/
не является регулярным выражением.
Вы сможете захватить то, что совпадает с частью шаблона, и использовать его при замене, если хотите:
sed -r 's/foo(.*)foo/hat\1car/g' file
Это захватит все, что находится между двумя вхождениями foo
в одной строке, и вставит этот бит между hat
и car
. \1
говорит: «вставьте все, что было захвачено первыми круглыми скобками».
Обратите внимание, что .*
является «жадным», поэтому, если у вас есть foobarfoofoobarfoo
, \1
будет barfoofoobar
, а не bar
.