用新的UUID字符串替换所有UUID字符串

时间:2011-07-25 21:17:13

标签: linux bash uuid

我有一个文本文件,其中包含一些不同的UUID字符串,我想用新的不同UUID字符串替换所有UUID字符串,我怎样才能在Bash中轻松完成?

2 个答案:

答案 0 :(得分:2)

假设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 :(得分:1)

怎么样:

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

无法从您的描述中看出,如果您有多个(不同的)UUID来替换这些,您可能需要链接此类操作。