У меня есть небольшая потребность в скрипте bash, который копирует часть строки из файла, а затем добавляет ее в другой файл с некоторым дополнительным текстом (содержащим другую переменную).
Пример
Файл1.txtсодержание
Warning: pasting the following URL into your browser exposes the OTP secret to Google:
https://www.google.com/chartxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Your new secret key is: xxxxxxxxxxxxxxxxxxxxxx
Your verification code is xxxxxx
Your emergency scratch codes are:
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
Поэтому мне нужно скопировать только секретный код, а затем вставить его в другой файл.
Файл2.txt
secret code of user xxxxxxxxxxx is saved
Я новичок как в Linux, так и в написании скриптов, поэтому буду очень признателен за любую помощь.
Также, пожалуйста, дайте мне знать, если мой вопрос непонятен.
решение1
Попробуйте этот sed:
sed -n 's|Your new secret key is: \(.*\)|secret code of user \1 is saved|p' File1.txt >> File2.txt
Он добавляет секретный код в File1.txt
. File2.txt
Секретный код — это то, что .*
совпадает и воспроизводится \1
.