我有一个文本文件,其中包含一些不同的UUID字符串,我想用新的不同UUID字符串替换所有UUID字符串,我怎样才能在Bash中轻松完成?
答案 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来替换这些,您可能需要链接此类操作。