在 SED 中将数字更改为随机字母

在 SED 中将数字更改为随机字母

考虑以下数字:145478

我想用 中的随机字母替换这些数字a to z

我迄今为止的尝试:sed -r 's/[0-9]/[a-z]/g'

它不会将模式更改为另一种模式,而是更改为我第二次输入的任何模式。

我得到的结果是:[a-z][a-z][a-z][a-z][a-z][a-z]

我如何将其变成实际的模式?换句话说,我如何将这些数字变成随机字母?

答案1

这不是awksed解决方案,但我希望这无论如何都会有所帮助。相同的数字是否总是应该用相同的字母替换?如果不是:

perl -pe 's/[0-9]/chr 97+rand 26/eg' input.txt

如果是,那么这是一个解决方案:

perl -MList::Util=shuffle -M5';$x=join"",shuffle a..z' -pe 'eval"tr/0-9/$x/"' input.txt

更新:有关第二个的较短版本,请参阅此主题

相关内容