考虑以下数字: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
这不是awk
或sed
解决方案,但我希望这无论如何都会有所帮助。相同的数字是否总是应该用相同的字母替换?如果不是:
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
更新:有关第二个的较短版本,请参阅此主题。