Настройте SSH для чтения HostName для хоста из файла

Я бы предложилawkобработку (, которая, как мне кажется, будет более гибкой и надежной):

awk '/^\* i/ && ++c == 2{ print r ORS; r=""; c=0 }
     { r=(r? r ORS:"")$0 }
     END{ print r }' file

Выход:

* misc: go to the park
with your dog 
* important: sell badges
the bigger the pricier
24 left right now

* important: go to the mall
get clothes
* important: finish homework

Для вашего текущего простого случая (без дополнительной логики)-его можно сократить до следующего:

awk '/^\* i/ && ++c == 2{ print "" }1' file

Чтобы извлечь нужную часть отдельно -по-прежнему одной командой awk, но с использованием динамического аргумента part, который принимает условное значение либо1(1-й раздел, предшествующий раздел ), либо2(2-й раздел, следующий раздел ).

Схема:

awk -v part=[12] '/^\* i/ && ++c == 2{ if (part == 1) exit; else f=1 } part == 1 || (part == 2 && f)' FILE

Использование:

--печать "до" раздел:

$ awk -v part=1 '/^\* i/ && ++c==2{ if (part==1) exit; else f=1 }
>         part==1 || (part==2 && f)' file
* misc: go to the park
with your dog 
* important: sell badges
the bigger the pricier
24 left right now

--печать "после" раздел:

$ awk -v part=2 '/^\* i/ && ++c==2{ if (part==1) exit; else f=1 }
>         part==1 || (part==2 && f)' file
* important: go to the mall
get clothes
* important: finish homework
5
18.12.2020, 20:33
2 ответа

если вы ~/ip.txt может содержать

hostname 1.2.3.4

тогда можно

include ~/ip.txt

в соответствующем месте файла ~/.ssh/config.

6
18.03.2021, 22:42

IIUC, вы можете использовать ProxyCommandвот так:

Host test
Port 12345
ProxyCommand ssh -p %p "$(cat ~/ip.txt)" nc localhost %p
StrictHostKeyChecking no
3
18.03.2021, 22:42

Теги

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