Найти и заменить в Unix - XML-файл

Я действительно не мог заставить "openconnect" правильно работать со всеми аргументами командной строки, поэтому в итоге я написал для него сценарий Expect.

Руй Ф. Рибейро ответил именно на деньги, однако мне нужно было немного больше исследований, чтобы заставить все работать, мелочи, переменные и тому подобное.

В интересах всех, кто когда-либо просматривал этот вопрос, я публикую сценарий, который разрешает мой прецедент для исходного вопроса, не потому, что это альтернатива, а потому, что он является «расширением» обмена знаниями Руи Ф. Рибейро.

#!/usr/bin/expect -f

set vpn_url "vpn.domain.com"
set vpn_username "theuser"
set vpn_password "thepassword"
set ubuntu_username "theubuntuloginuser"
set ubuntu_password "theubuntuloginpass"

set force_conservative 0  ;# set to 1 to force conservative mode even if
        ;# script wasn't run conservatively originally
if {$force_conservative} {
  set send_slow {1 .1}
  proc send {ignore arg} {
    sleep .1
    exp_send -s -- $arg
  }
}

set timeout -1
spawn $env(SHELL)
match_max 100000
send -- "sudo LD_LIBRARY_PATH=\"/usr/local/lib\" openconnect --juniper --no-cert-check $vpn_url -u $vpn_username\r"
expect {
  "password for $ubuntu_username:" {
    send -- "$ubuntu_password\r"
  }
}
expect -exact "password:"
send -- "$vpn_password\r"
expect eof
0
16.03.2019, 02:34
1 ответ

Мне кажется, это то, что вы пытаетесь сделать:

awk '/icn=/ { sub(/icn=.[0-9][0-9]*/, "icn=\""++v); print } ' file.xml
0
28.01.2020, 03:54

Теги

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