使用awk在文本文件的一行上打印随机数序列
我有一个文本文件names.txt,每一行都包含一个姓氏:使用awk在文本文件的一行上打印随机数序列,awk,printf,Awk,Printf,我有一个文本文件names.txt,每一行都包含一个姓氏: Smith Johnson Morgan ... ... 我想在每行中添加七个介于0和100之间的随机数,使其看起来像这样: Smith 76 94 56 99 32 21 11 Johnson 54 15.2 19.8 32.66 44.99 22.63 18.99 Morgan 99 18.6 24.75 99.22 35.18 65.34 54.22 .... .... 我尝试在awk中使用此命令: $ awk '{prin
Smith
Johnson
Morgan
...
...
我想在每行中添加七个介于0和100之间的随机数,使其看起来像这样:
Smith 76 94 56 99 32 21 11
Johnson 54 15.2 19.8 32.66 44.99 22.63 18.99
Morgan 99 18.6 24.75 99.22 35.18 65.34 54.22
....
....
我尝试在awk中使用此命令:
$ awk '{print $0; for (myvar = 1; myvar <= 7; myvar++) print rand()*100}' names.txt
等等
我知道我必须使用printf,以某种方式使其工作,我尝试了以下方法:
$ awk '{printf $0; for (myvar = 1; myvar <= 7; myvar++) printf rand()*100}' names.txt
$awk'{printf$0;for(myvar=1;myvar在每行末尾添加行终止符
awk '{printf "%s ", $0; for (myvar = 1; myvar <= 7; myvar++) \
printf "%d ", rand()*100; printf "\n"}' names.txt
awk'{printf”%s',$0;for(myvar=1;myvarawk'BEGIN{srand();}
{
printf(“%s”,0美元);
对于(i=0;我感谢你!这正是我想要的。+1,尽管值得指出的是,提问者混淆了print(产生换行符)和printf(不产生换行符)。还需要注意的是,\n
是给予printf的换行符。
awk '{printf "%s ", $0; for (myvar = 1; myvar <= 7; myvar++) \
printf "%d ", rand()*100; printf "\n"}' names.txt
awk 'BEGIN { srand(); }
{
printf("%s", $0);
for (i=0;i<7;++i)
printf(" %d", 101*rand());
printf("\n");
}'