![如何创建 100 个文件](https://linux22.com/image/918565/%E5%A6%82%E4%BD%95%E5%88%9B%E5%BB%BA%20100%20%E4%B8%AA%E6%96%87%E4%BB%B6.png)
所以我必须生成 100 个文件,其中包含任意随机数。然后我必须读取这些文件并找出哪个文件中的数字最大,还要对所有值进行排序并将所有内容放入新的 .txt 文件中。我首先要做什么?
谢谢你!
答案1
$RANDOM
首先,使用循环生成所有随机数并将它们重定向到各个文件,如下所示:
for i in {1..100}; do echo $RANDOM > $RANDOM.txt; done;
(可能会出现重复的数字,因此请注意。)
接下来,读取并排序这些文件,然后只对最后一个文件进行 tail 操作。完整的脚本如下所示:
#!/bin/bash
for i in {1..100}; do
echo $RANDOM > ${i}.sample;
done;
cat *.sample | sort | tail -n1;
答案2
版权所有 James Daniel Marrs Ritchey。本材料提交于 '如何创建 100 个文件',但也可以从'https://snippetly.blogspot.com/2019/12/create-100-files-with-random-numbers-in.html' 根据以下任何许可条款:Comprehensible Open License 3.0(https://jamesdanielmarrsritchey.blogspot.com/2019/06/comprehensible-open-license-30.html)、麻省理工学院 (https://opensource.org/licenses/MIT)。
您尚未指定脚本语言,因此我假设您愿意使用任何能够满足您需求的语言。您可以使用 PHP。只需创建一个循环,生成一个数字并将其保存到文件中,直到创建 100 个。然后将这 100 个文件读入数组。对数组进行排序以使数字按顺序排列。将数组转换为字符串,然后将其保存到新的文本文件中。还要从数组中获取最后一个值,因为这将是最大的数字。
不过我不确定你为什么需要创建所有这些文件。你可以跳过所有这些步骤,只需创建包含所有数字的最终文件即可。
代码:
<?php
#Determine location of this script (so that files can be saved there)
$location = __DIR__;
#Create 100 files with random numbers in them. Files are saved to same directory as script. Numbers are between 0 and 1000000000.
for ($n = 1; $n <= 100; $n++) {
file_put_contents("{$location}/{$n}.txt", random_int(0, 1000000000));
}
#Read numbers from the 100 files into a sorted new text file
$numbers = array();
for ($n = 1; $n <= 100; $n++) {
$numbers[] = file_get_contents("{$location}/{$n}.txt");
}
sort($numbers, SORT_NUMERIC);
file_put_contents("{$location}/sorted_numbers.txt", implode("\n", $numbers));
#Determine the biggest number
$biggest_number = end($numbers);
echo "This biggest number is $biggest_number.\n";
?>