所以我要做的就是:我一直在使用keybr.com来提高我的打字技巧,在这个网站上你可以“提供你自己的自定义文本”。现在我一直在用书中的章节来打字,所以它比仅仅输入一组字母更有趣。现在我想在文本中插入数字。具体来说,每个单词之间都有类似“393”的东西,随机集比那个例子更小更大。
所以我把一本书的章节保存到我家文件夹的文件中。现在我只需要一个命令来搜索空格并输入一组数字并添加一个空格,这样一句话就像这样:293狗328是102黑色。 334 ......等等
我通过搜索引擎查找了linux命令,我发现如何用以下文件替换文本文件中的字符串:
sed -i's / original / new / g'file.txt
以及如何生成随机数:
$ shuf -i MIN-MAX -n COUNT
我只是想不出如何输出一行命令,在每个单词之间有随机数。我还在搜索,所以感谢任何花时间阅读我的问题的人。
Perl救援!
perl -pe 's/ /" " . (100 + int rand 900) . " "/ge' < input.txt > output.txt
-p
逐行读取输入,读取一行后,它运行代码并将行打印到输出s///
类似于你从sed知道的替换/g
意味着全球化,即它尽可能多地替代/e
表示替换部分是要运行的代码。在这种情况下,代码生成一个随机数(100-999)。鉴于:
$ echo "$txt"
Here is some random words. Please
insert a number a space between each one.
这是一个简单的awk
来做到这一点:
$ echo "$txt" | awk '{for (i=1;i<=NF;i++) printf "%s %d ", $i, rand()*100; print ""}'
Here 92 is 59 some 30 random 57 words. 74 Please 78
insert 43 a 33 number 77 a 10 space 78 between 83 each 76 one. 49
纯粹的Bash中大致相同:
while read -r line; do
for word in $line; do
printf "%s %s" "$word $((1+$RANDOM % 100))"
done
echo
done < <(echo "$txt")