在文件夹文件中查找随机生成的数字的总和

时间:2019-12-11 13:08:13

标签: bash

我有一个大学的任务,要创建5个文件夹,每个文件夹中有10个文件,然后在所有文件中随机生成10个数字,最后计算每个文件夹中文件的数字总和并将它们输出到单独的文件中。我们只学习了基础知识,这对我来说真的很难理解下一步该怎么做。我设法创建了内部带有随机数字的文件夹和文件,但我不知道如何遍历每个文件夹并求和每个文件中的数字。有人可以帮我吗?

#!/bin/bash
mkdir Katalogas1
mkdir Katalogas2
mkdir Katalogas3
mkdir Katalogas4
mkdir Katalogas5
for x in {1..10}
for x in {1..10}
do 
touch "$x.txt"
shuf -i1-1000 -n 1 >Katalogas1/$x.txt
done
paste 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt 10.txt >bendras1.txt
cat bendras1.txt | awk '{print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,($1+$2+$3+$4+$5+$6+$7+$8+$9+$10)}' >katalogas1.txt
cd ..
cd Katalogas2
for x in {1..10}
do 
touch "$x.txt"
shuf -i1-1000 -n 1 >Katalogas2/$x.txt
done
paste 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt 10.txt >bendras2.txt
cat bendras2.txt | awk '{print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,($1+$2+$3+$4+$5+$6+$7+$8+$9+$10)}' >katalogas2.txt
cd ..
cd Katalogas3
for x in {1..10}
do 
touch "$x.txt"
shuf -i1-1000 -n 1 >Katalogas3/$x.txt
done
paste 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt 10.txt >bendras3.txt
cat bendras3.txt | awk '{print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,($1+$2+$3+$4+$5+$6+$7+$8+$9+$10)}' >katalogas3.txt
cd ..
cd Katalogas4
for x in {1..10}
do 
touch "$x.txt"
shuf -i1-1000 -n 1 >Katalogas4/$x.txt
done
paste 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt 10.txt >bendras4.txt
cat bendras4.txt | awk '{print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,($1+$2+$3+$4+$5+$6+$7+$8+$9+$10)}' >katalogas4.txt
cd ..
cd Katalogas5
for x in {1..10}
do 
touch "$x.txt"
shuf -i1-1000 -n 1 >Katalogas5/$x.txt
done
paste 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt 10.txt >bendras5.txt
cat bendras5.txt | awk '{print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,($1+$2+$3+$4+$5+$6+$7+$8+$9+$10)}' >katalogas5.txt

2 个答案:

答案 0 :(得分:0)

正如马克斯·穆斯特(Max Muster)所说,我们不会做功课,但是可以肯定的是我们会为您提供帮助!

我认为您必须从头开始做所有事情。

首先,我建议您重新考虑如何做到这一点。 “实现这一目标的更简单的方法是什么?”是吗: 1.创建文件夹,创建一个空文件,生成一个数字,使用该数字重命名一个文件,创建第二个空文件,生成第二个数字,重命名,等等。 要么 2. blabla 要么 3. blabla

实际上,有很多可能性。但是您必须选择一个。完成后,用英语单词(或您的母语,实际上我是法语)编写代码,如下所示:

create folder then
  generate num 1
    create file named 1
  generate num 2
etc

然后发布它,我们将告诉您这是否是初级的最佳方法

希望我有帮助 Iswaren

答案 1 :(得分:0)

我告诉你使用功能

#!/bin/bash

k=("Katalogas1" "Katalogas2" "Katalogas3" "Katalogas4" "Katalogas5")

# one function to make the folders

mfiles()  {
 cd $1
 for x in {1..10}
  do
  touch "$x.txt"
  shuf -i1-1000 -n 1 > $x.txt
 done
 cd ..
}

# one function to go the same way and count the beans 
# and write it to a file in your folders

summ() {
 cd $1
 touch "sum.txt"
 for x in {1..10}
  do
  ((sum += `cat $x.txt`))
 done
 echo "$sum" > "sum.txt"
 cd ..
}

# finally this is your main program

for i in "${k[@]}"; do
    mkdir "$i"
    mfiles "$i"
    summ "$i"
done