Найти связанный текст из другого файла и обновить, используя sed или awk или grep - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть два текстовых файла.
1. user.txt содержит следующий текст

ServerName:xyz  
Username:foo  
UserID:  

Необходимо получить идентификатор пользователя из другого файла, например, properties.txt, и обновить его в файле user.txt.

properties.txt:

ServerName,Username,UserID,  
abc,joe,123,  
jkl,brad,5678,  
xyz,foo,456,

любая помощь будет принята с благодарностью.Мне нужно решение, которое должно работать как в AIX, Linux

спасибо,

1 Ответ

0 голосов
/ 19 сентября 2019

Convoluted Sed Solution:

sed -e '/Username/h;/UserID/{x;s/.*:/printf "UserID:%d" $(grep /;s/$/ properties.txt | grep -oE [0-9]+)/e}' user.txt

При этом используется h, чтобы вставить имя пользователя в пространство удержания, затем x, чтобы получить эту строку обратно, когда следующая строка UserIDобрабатывается.Затем строка имени пользователя преобразуется в printf "UserID: %d" $(grep [Username] properties.txt | grep -oE [0-9]+), который выполняется в оболочке с s///e

Если оболочка не поддерживает синтаксис $( ... ), обратные пометки могут работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...