awk split parameter by char

Три вещи, о которых следует подумать:

1) Настроен ли удаленный хост для аутентификации по ключу? (См. man sshd_config AuthenticationMethods и PubkeyAuthentication)

2) Запланировано ли выполнение задания cron в контексте правого пользователя (root или другой пользователь)

3) Есть ли у вас разрешение на удаленном компьютере? хост в целевой каталог.

4
29.10.2017, 13:27
2 ответа

Вы можете использовать строковые функции в awk.

$ (echo BASH.NIR; echo SH.ABI FOOBAR) | awk '{p=index($1,".");print "User is", substr($1,p+1) ", SHELL IS", substr($1,0,p-1)}'
User is NIR, SHELL IS BASH
User is ABI, SHELL IS SH

Функция index возвращает позицию символа, который нужно найти (в данном случае точку). А strstr вернет подстроку. Мы используем p+1 и p-1, чтобы не включать точку.

Дополнительную информацию можно найти в разделе "Строковые функции" руководства awk.

3
29.04.2021, 00:44

Вы можете просто использовать . в качестве разделителя полей:

awk -F. '{ print "User is " $2 ", SHELL is " $1 }' file.txt
10
29.04.2021, 00:44

Теги

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