LINUX.ORG.RU

История изменений

Исправление Zmicier, (текущая версия) :

Полный исходник

А! Блин, не надо так больше делать, мы не в IRC.

Там у вас лежит следующее:

    #!/bin/bash

    outputFileName='output.txt';

    # удаляем файл с предыдущим результатом
    if [ -f "$outputFileName" ]; then
        rm --verbose --force "$outputFileName";
    fi;

    filelist=`mktemp`;

    # ограничиваем поиск двумя результатами, этого достаточно, чтобы увидеть эффект
    find -maxdepth 1 -type f > "$filelist";
    cat "$filelist" | head -n 2 | while read fileNameLine
    do
        echo "Отладка: точка алгоритма: просматриваем файл $fileNameLine";
        maxLen=0;
        cat "$fileNameLine" | while read fileContentLine
        do
            gotLineLen=`echo "$fileContentLine" | wc --bytes`;
            echo "Отладка: точка алгоритма: начинаем обрабатывать строку";
            echo "Отладка: обзор переменных: " \
                "maxLen=$maxLen (сохранённая длина), " \
                "gotLineLen=$gotLineLen (найденная длина)";
            if [ "$maxLen" -lt "$gotLineLen" ]; then
                echo "Отладка: точка алогритма: " \
                    "присваиваем найденное значение $gotLineLen... ";
                maxLen="$gotLineLen";
                echo "Отладка: обзор переменных: maxLen=$maxLen";
            fi;
            echo "Отладка: точка алгоритма: закончили обрабатывать строку";
            echo;
        done;
        echo "ВНИМАНИЕ: строчкой ниже - разрыв шаблона!";
        echo "Отладка: обзор переменных: maxLen=$maxLen";
        echo "Отладка: точка алгоритма: закончили смотреть файл";
        echo -e "\n";
        if [ "$maxLen" -gt 0 ]; then
            echo "Результат: $maxLen: $fileNameLine";
        fi;
        echo
    done;
    rm -vf "$filelist";

Да, E, прощу прощения, здесь цикл конечно же в подоболочке.

И да, не могу не согласится с анонимом, говнокод действительно адовый. Вы определеяете размер файла, записывая его целиком в переменную что ли (gotLineLen=`echo "$fileContentLine" | wc --bytes`;)? O_o

Расскажите нормально, что вам нужно?

Исправление Zmicier, :

Полный исходник

А! Блин, не надо так больше делать, мы не в IRC.

Там у вас лежит следующее:

    #!/bin/bash

    outputFileName='output.txt';

    # удаляем файл с предыдущим результатом
    if [ -f "$outputFileName" ]; then
        rm --verbose --force "$outputFileName";
    fi;

    filelist=`mktemp`;

    # ограничиваем поиск двумя результатами, этого достаточно, чтобы увидеть эффект
    find -maxdepth 1 -type f > "$filelist";
    cat "$filelist" | head -n 2 | while read fileNameLine
    do
        echo "Отладка: точка алгоритма: просматриваем файл $fileNameLine";
        maxLen=0;
        cat "$fileNameLine" | while read fileContentLine
        do
            gotLineLen=`echo "$fileContentLine" | wc --bytes`;
            echo "Отладка: точка алгоритма: начинаем обрабатывать строку";
            echo "Отладка: обзор переменных: " \
                "maxLen=$maxLen (сохранённая длина), " \
                "gotLineLen=$gotLineLen (найденная длина)";
            if [ "$maxLen" -lt "$gotLineLen" ]; then
                echo "Отладка: точка алогритма: " \
                    "присваиваем найденное значение $gotLineLen... ";
                maxLen="$gotLineLen";
                echo "Отладка: обзор переменных: maxLen=$maxLen";
            fi;
            echo "Отладка: точка алгоритма: закончили обрабатывать строку";
            echo;
        done;
        echo "ВНИМАНИЕ: строчкой ниже - разрыв шаблона!";
        echo "Отладка: обзор переменных: maxLen=$maxLen";
        echo "Отладка: точка алгоритма: закончили смотреть файл";
        echo -e "\n";
        if [ "$maxLen" -gt 0 ]; then
            echo "Результат: $maxLen: $fileNameLine";
        fi;
        echo
    done;
    rm -vf "$filelist";

Да, E, прощу прощения, здесь цикл конечно же в подоболочке.

И да, не могу не согласится с анонимом, говнокод действительно адовый. Вы определеяете размер файла, записывая его целиком в переменную что ли (gotLineLen=`echo "$fileContentLine" | wc --bytes`;)? O_o

Исправление Zmicier, :

Полный исходник

А! Блин, не надо так больше делать, мы не в IRC.

Там у вас лежит следующее:

    #!/bin/bash

    outputFileName='output.txt';

    # удаляем файл с предыдущим результатом
    if [ -f "$outputFileName" ]; then
        rm --verbose --force "$outputFileName";
    fi;

    filelist=`mktemp`;

    # ограничиваем поиск двумя результатами, этого достаточно, чтобы увидеть эффект
    find -maxdepth 1 -type f > "$filelist";
    cat "$filelist" | head -n 2 | while read fileNameLine
    do
        echo "Отладка: точка алгоритма: просматриваем файл $fileNameLine";
        maxLen=0;
        cat "$fileNameLine" | while read fileContentLine
        do
            gotLineLen=`echo "$fileContentLine" | wc --bytes`;
            echo "Отладка: точка алгоритма: начинаем обрабатывать строку";
            echo "Отладка: обзор переменных: " \
                "maxLen=$maxLen (сохранённая длина), " \
                "gotLineLen=$gotLineLen (найденная длина)";
            if [ "$maxLen" -lt "$gotLineLen" ]; then
                echo "Отладка: точка алогритма: " \
                    "присваиваем найденное значение $gotLineLen... ";
                maxLen="$gotLineLen";
                echo "Отладка: обзор переменных: maxLen=$maxLen";
            fi;
            echo "Отладка: точка алгоритма: закончили обрабатывать строку";
            echo;
        done;
        echo "ВНИМАНИЕ: строчкой ниже - разрыв шаблона!";
        echo "Отладка: обзор переменных: maxLen=$maxLen";
        echo "Отладка: точка алгоритма: закончили смотреть файл";
        echo -e "\n";
        if [ "$maxLen" -gt 0 ]; then
            echo "Результат: $maxLen: $fileNameLine";
        fi;
        echo
    done;
    rm -vf "$filelist";

Да, E, прощу прощения, здесь цикл конечно же в подоболочке.

И да, не могу не согласится с анонимом, говнокод действительно адовый. Вы определеяете размер файла, записывая его целиком в переменную что ли (gotLineLen=`echo "$fileContentLine" | wc --bytes`;)?

Исходная версия Zmicier, :

[urlhttp://paste.org.ru/?blznrv]Полный исходник

А! Блин, не надо так больше делать, мы не в IRC.

Там у вас лежит следующее:

    #!/bin/bash

    outputFileName='output.txt';

    # удаляем файл с предыдущим результатом
    if [ -f "$outputFileName" ]; then
        rm --verbose --force "$outputFileName";
    fi;

    filelist=`mktemp`;

    # ограничиваем поиск двумя результатами, этого достаточно, чтобы увидеть эффект
    find -maxdepth 1 -type f > "$filelist";
    cat "$filelist" | head -n 2 | while read fileNameLine
    do
        echo "Отладка: точка алгоритма: просматриваем файл $fileNameLine";
        maxLen=0;
        cat "$fileNameLine" | while read fileContentLine
        do
            gotLineLen=`echo "$fileContentLine" | wc --bytes`;
            echo "Отладка: точка алгоритма: начинаем обрабатывать строку";
            echo "Отладка: обзор переменных: " \
                "maxLen=$maxLen (сохранённая длина), " \
                "gotLineLen=$gotLineLen (найденная длина)";
            if [ "$maxLen" -lt "$gotLineLen" ]; then
                echo "Отладка: точка алогритма: " \
                    "присваиваем найденное значение $gotLineLen... ";
                maxLen="$gotLineLen";
                echo "Отладка: обзор переменных: maxLen=$maxLen";
            fi;
            echo "Отладка: точка алгоритма: закончили обрабатывать строку";
            echo;
        done;
        echo "ВНИМАНИЕ: строчкой ниже - разрыв шаблона!";
        echo "Отладка: обзор переменных: maxLen=$maxLen";
        echo "Отладка: точка алгоритма: закончили смотреть файл";
        echo -e "\n";
        if [ "$maxLen" -gt 0 ]; then
            echo "Результат: $maxLen: $fileNameLine";
        fi;
        echo
    done;
    rm -vf "$filelist";

Да, E, прощу прощения, здесь цикл конечно же в подоболочке.

И да, не могу не согласится с анонимом, говнокод здесь есть.