Random 如何使用sed在文本后插入随机数

Random 如何使用sed在文本后插入随机数,random,sed,Random,Sed,我想使用shell脚本在特定文本后插入一个随机数。我可以生成一个随机数(32个字符): 如何在文本(例如文件中的“字母表”)后插入此随机数(32字符随机数): sed '/\balphabet \b/& 32_char_random_number/' file 假设您的随机编号已分配给$char\u random\u number char_random_number=$(cat /dev/urandom | tr -dc 'a-z0-9' | fold -w 32 | head -

我想使用shell脚本在特定文本后插入一个随机数。我可以生成一个随机数(32个字符):

如何在文本(例如文件中的“字母表”)后插入此随机数(32字符随机数):

sed '/\balphabet \b/& 32_char_random_number/' file 

假设您的随机编号已分配给
$char\u random\u number

char_random_number=$(cat /dev/urandom | tr -dc 'a-z0-9' | fold -w 32 | head -n 1)
您可以使用双引号访问变量

sed "s/\(alphabet\)/\1$char_random_number/g" file

强健的awk解决方案:

示例
input.txt
内容:

Lorem ipsum dolor alphabet sit amet, consectetuer adipiscing elit alphabet. Aenean commodo ligula eget dolor. 
Aenean massa. Cum sociis natoque penatibus et alphabet magnis dis parturient montes, nascetur ridiculus mus. 
Donec quam felis, alphabet ultricies nec, pellentesque eu, alphabet pretium quis, sem. Nulla consequat massa quis enim. 
Donec pede justo, fringilla no alphabet vel, aliquet nec, alphabet vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. 
Nullam dictum felis eu pede alphabet mollis pretium. 
Integer tincidunt, alphabet. Cras dapibus.

工作:

rnum=$(< /dev/urandom  tr -dc [[:alnum:]] | head -c 32)
awk -v rnum="$rnum" '{ gsub(/\<alphabet\>/,"& "rnum) }1'

当使用-r选项运行sed时,您可能应该添加-r,允许使用扩展正则表达式。但我的答案不需要添加。:)是的,会的。对于-r,无需转义包含匹配部分的括号。抱歉,不知道如何正确对齐注释:(嗯,很有趣。$echo“alphabet”| sed“s/(a.*)/\1$char\u random\u number/g“alphabet123$echo“alphabet”| sed“s/(a.*)/\1$char random\u\u number/g”sed:-e表达式#1,char 15:s命令的RHS$echo“alphabet”上的\1无效引用| sed-r“s/(a.*)/\1$char#u random_number/g“alphabet123 Good know:)如果不转义括号,则没有-r它就无法工作。对你来说,你真的不需要它,谢谢!将于明天确认和+1。谢谢,将于明天确认。请
rnum=$(< /dev/urandom  tr -dc [[:alnum:]] | head -c 32)
awk -v rnum="$rnum" '{ gsub(/\<alphabet\>/,"& "rnum) }1'
Lorem ipsum dolor alphabet g9vgamG[slhPKJgOxqphM[KFOdL1qDo5 sit amet, consectetuer adipiscing elit alphabet g9vgamG[slhPKJgOxqphM[KFOdL1qDo5. Aenean commodo ligula eget dolor. 
Aenean massa. Cum sociis natoque penatibus et alphabet g9vgamG[slhPKJgOxqphM[KFOdL1qDo5 magnis dis parturient montes, nascetur ridiculus mus. 
Donec quam felis, alphabet g9vgamG[slhPKJgOxqphM[KFOdL1qDo5 ultricies nec, pellentesque eu, alphabet g9vgamG[slhPKJgOxqphM[KFOdL1qDo5 pretium quis, sem. Nulla consequat massa quis enim. 
Donec pede justo, fringilla no alphabet g9vgamG[slhPKJgOxqphM[KFOdL1qDo5 vel, aliquet nec, alphabet g9vgamG[slhPKJgOxqphM[KFOdL1qDo5 vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. 
Nullam dictum felis eu pede alphabet g9vgamG[slhPKJgOxqphM[KFOdL1qDo5 mollis pretium. 
Integer tincidunt, alphabet g9vgamG[slhPKJgOxqphM[KFOdL1qDo5. Cras dapibus.