LINUX.ORG.RU

Задача на Bash=)


0

2

Доброго времени суток,с не давних пор появилось желание изучить bash и все что с ним связано ,так вот помогите решить простенькую задачку,дан текстовый файл,в нем в один столбик записаны разные целые числа,нужно что бы выводилось максимальное число из всех написанных в этом файле,за ранее большое спасибо..


Скажи-ка, студент....вы сортировку пузырьком уже прошли?

zolden ★★★★★
()

Зачётная неделя в феврале? Хм.

anonymous
()

учусь в школе и хочу сам познать азы этого языка,вот поставил перед собой задачу..но не как не могу разобраться ,вот мои мысли по поводу решения этой задачи:максимальное значение первая строка (по умолчанию)если вторая строка больше первой то max значение присваивается второй строке ,если меньше то следовательно max числом остается число на первой строке...и.т.д

Imba
() автор топика
Ответ на: комментарий от Imba

вот поставил перед собой задачу..но не как не могу разобраться

ну так либо первый комментарий, либо поставь себе другую задачу, а эту будешь решать по мере накопления опыта

kir64 ★★
()
Ответ на: комментарий от Imba

cat file | sort -r -u | head -n 1

я же сказал прочитай маны, баш сам по себе не интересен без других команд, если хочется чего то универсального тогда уж учи питон

outsider ★★
()
Последнее исправление: outsider (всего исправлений: 1)

главная проблема не пойму как записать условие,опыта мало,но хочется понять как и что,разобраться,вот и сижу ломаю голову над условием do if...then... fi.... done..помогите пожалуйста уважаемые..

Imba
() автор топика
Ответ на: комментарий от Imba

Алгоритм готов, половина дела сделана. Что мешает его реализовать?

Построчное чтение файла делается так:

while read var; do
 do_some_work_with $var
done < filename

Различные операции сравнения описаны в `help test`.

Прочитайте Anvanced Bash Scripting Guide.

AITap ★★★★★
()
Последнее исправление: AITap (всего исправлений: 1)
Ответ на: комментарий от outsider

sort -r -u

и давно там не лексикографический порядок по умолчанию?

anonymous
()

примерно должно выглядеть так let a=.. let b=.. for x 'cat. 1.txt' do if [ $n -eq '0' ];then ...... fi done . . . только вот условие ни как(я новичек в этом деле и много не понимаю)за ранее большое спасибо

Imba
() автор топика
Ответ на: комментарий от anonymous

Обязательно просчитаю,спасибо..

Imba
() автор топика
Ответ на: комментарий от Nokman

Спасибо так все работает,но ,дан файл 1.txt -в нем столбиком числа,и есть файл mix.sh-в нем нужно написать скрипт который и будет считать выше упомянутое условие,при запуске этого файла(mix.sh)должно выводиться максимальное число файла 1.txt

Imba
() автор топика
Ответ на: комментарий от Imba

дан файл 1.txt -в нем столбиком числа,и есть файл mix.sh-в нем нужно написать скрипт который и будет считать выше упомянутое условие,при запуске этого файла(mix.sh)должно выводиться максимальное число файла 1.txt

Ну, так введи ранее показанные команды в скрипт mix.sh

$ cat mix.sh 
#!/bin/sh

awk 'max=="" || $1 > max {max=$1} END{ print max}' 1.txt

sort -r -u -n 1.txt | head -n 1

justAmoment ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.