скажем, у меня есть счетчик, который является переменным. Для ясности, counter = 3
.
И у меня есть файлы с разными значениями:
файл 1
3
4
8
файл 2
2
3
4
5
файл 3
11
13
15
файл 4
19
29
34
мой желаемый вывод - переменная max= 34
, которую нужно напечатать.
Также, основываясь на count=3
, в этом случае я должен сохранять следующие значения в переменных
variable A= 35
variable B =36
variable C =37
и печатать их.
Я пробовал разные коды с if -> then
и т. Д., Но ничего не приближалось.
Может кто-нибудь дать мне указатели?
Это был код, который я в последний раз пробовал
f1mx = `cat file1 | grep "." | tail -1`
f2mx = `cat file2 | grep "." | tail -1`
f3mx = `cat file3 | grep "." | tail -1`
f4mx = `cat file4 | grep "." | tail -1`
if [ $f1mx \> $f2mx ];
then
f12mx=$f1mx
else
f12mx=$f2mx;
fi;
if [ $f3mx \> $f4mx ];
then
f34mx=$f3mx
else
f34mx=$f4mx;
fi;
if [ $f12mx \> $f34mx ];
then
fmax=$f12mx
else
fmax=$f34mx
fi;
echo "fmax"
i=0
while [ $i -le $counter ];
do
a[$i]=$fmax+1
echo $a[$i];
let i=i+1
done
Предположим, все файлы с именем file*
в Вашем каталоге являются теми имеющими эти значения, можно получить максимальное значение как это:
$ cat f* | sort -n | tail -1
34
Или хранилище это:
$ max=$(cat f* | sort -n | tail -1)
$ echo $max
34
Для определения переменных на основе этого значения сделайте:
for i in $(seq $count)
do
declare v$i=$((max + $i))
done
Это генерирует от v1
[до 115] ($v3
) в Вашем случае, будучи каждым как v_i = $max + $i
.
v=( $((max+1)) $((max+2)) $((max+3)) )
, но OP, который попросили Вара. – Kingamajick 19.05.2020, 06:57