Заменить все строки UUID новыми строками UUID - PullRequest
2 голосов
/ 26 июля 2011

У меня есть текстовый файл, содержащий несколько различных строк UUID, я хочу заменить все строки UUID новыми различными строками UUID, как я могу это легко сделать в Bash?

Ответы [ 2 ]

2 голосов
/ 23 февраля 2012

Предполагая, что формат uuid содержит только шестнадцатеричные числа с дефисами между ними и этим числом символов между каждым гипеном: 8, 4, 4, 4, 12. Я также предполагаю, что они находятся на отдельной строке.

awk '
{
    if ($0 ~ /^[a-fA-F0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}$/)
    {
        system("uuidgen")
    }
    else
    {
        print $0
    }
}' file-with-uuids > new-file-with-uuids

# To override the old file with the new:
mv -f new-file-with-uuids file-with-uuids
1 голос
/ 26 июля 2011

Как насчет:

sed -i "s/$OLDUUID/$NEWUUID/g" file.txt 

не может сказать из вашего описания, что если у вас есть несколько (разных) UUID для их замены, вам может потребоваться объединить такие операции в цепочку.

...