Как я могу найти образец сопоставления (хранится в переменной) в файле, используя awk?

Стандартный ввод данных недоступен для ваших удаленных команд. Что вы можете сделать, так это использовать флаг bash "-s" для чтения команд со стандартного ввода:

Из руководства bash:

-s        If the -s option is present, or if no arguments remain after
          option processing, then commands are read from the standard 
          input.  This option allows the positional parameters to be set
          when  invoking  an  interactive shell.

Итак, это должно делать то, что вы хотите:

#!/bin/bash
#input server names line by line in server.txt
cat server.txt | while read line
do
    sshpass -p password ssh root@$line bash -s << EOF
hostname
uname -r
EOF
done

См. Также: https: / /stackoverflow.com/questions/305035/how-to-use-ssh-to-run-shell-script-on-a-remote-machine

121---40354-

Параметр MaxAuthTries определяет максимальное количество попыток аутентификации, разрешенное для одного соединения. Когда количество отказов достигает половины этого значения, регистрируются дополнительные отказы. Это должно быть установлено на 1.

0
12.08.2018, 16:19
2 ответа

Попробуйте это,

 awk "/""$pat1""/,/""$pat2""/" test.log | grep -v "$pat3" > Error.bk
  • напечатает контекст между $pat1и $pat2
  • .
  • Так как в первой переменной есть пробел, используйте двойные кавычки дважды.
0
28.01.2020, 04:15

более простым способом:

grep -e "$pat1\|$pat2" filename > resultfile
0
28.01.2020, 04:15

Теги

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