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

Linux 用新的UUID字符串替换所有UUID字符串,linux,bash,uuid,Linux,Bash,Uuid,我有一个文本文件,其中包含一些不同的UUID字符串,我想用新的不同的UUID字符串替换所有的UUID字符串,如何在Bash中轻松做到这一点?如何: sed -i "s/$OLDUUID/$NEWUUID/g" file.txt 根据您的描述无法判断,如果您有多个(不同的)uuid来替换这些uuid,您可能需要链接这些操作。假设uuid格式只包含六位小数,中间有连字符,每个hypen之间的字符数为:8、4、4、12。 我还假设他们有自己的想法 awk ' { if ($0 ~ /^[a

我有一个文本文件,其中包含一些不同的UUID字符串,我想用新的不同的UUID字符串替换所有的UUID字符串,如何在Bash中轻松做到这一点?

如何:

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

根据您的描述无法判断,如果您有多个(不同的)uuid来替换这些uuid,您可能需要链接这些操作。

假设uuid格式只包含六位小数,中间有连字符,每个hypen之间的字符数为:8、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

可能有用:我知道如何创建UUID哈希……您需要提供更多信息,文本文件是什么样子,以及“新”UUID是如何存储的。需要替换文本文件中的全部或部分字符串吗?谢谢Fredrik!这就是我为什么在这里闲逛!sed-i“s/$OLDUUID/$NEWUUID/g”file.txt将所有UUID字符串替换为同一个,我需要替换所有不同的UUID字符串:)有一个OLDUUID但有多个NEWUUID?不,多个OLDUUID和多个NEWUUID由uuidgen生成。摆脱关于在一行上的假设:
sed“s/[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\}/$(uuidgen)/g“