Сценарий Bash для управления CSV-файлом

  1. Поскольку директивы Apache 2.4 Order, Allowи Denyустарели и были заменены новым синтаксисом Require.

    Заменить

    Order allow,deny
    Allow from all
    

    с

    Require all granted 
    

    в вашей конфигурации. См.https://httpd.apache.org/docs/current/upgrading.html

  2. Похоже мод _перезапись не включен на вашем сервере. Включите модуль командой a2enmod(, которая создает символическую ссылку /etc/apache2/mods-enabled/rewrite.load, указывающую на ../mods-available/rewrite.load), затем перезапустите сервер :

    .
    sudo a2enmod rewrite
    sudo service apache2 restart
    

    Чтобы вывести список всех включенных модулей, вы можете использовать команду a2queryс флагом -m:

    a2query -m
    
1
30.10.2021, 18:56
1 ответ

Ваш скрипт почти готов. Осталось только проверить условие if, если V9равно 3. Чтобы сначала отобразить женские данные, я бы предложил поместить цикл while в функцию, которая требует пола в качестве первого аргумента, а затем запустить функцию один раз для каждого пола.

INPUT=phpOJxGL9.csv
OLDIFS=$IFS
IFS=','

[ ! -f $INPUT ] && { echo "$INPUT file not found"; exit 99; }

function readCsv {
    while read V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
    do
        requiredGender="$1"

        if [[ "$V2" == "$requiredGender" ]]
        then
            if [[ "$V9" == "3" ]]
            then
                echo "$V1,$V2,$V8,$V9"
            fi
        fi
    done < $INPUT
}

echo Grade2 = 3
echo Age Sex Grade2 Grade1 
echo '************************'

echo
echo "Women"
echo "--------------"

readCsv "Female"

echo
echo "Men"
echo "--------------"

readCsv "Male"

IFS=$OLDIFS

Чтобы запустить скрипт, вам нужно сделать его исполняемым:

chmod +x script.sh
./script.sh

Имейте в виду, что файл csv, который вы указали выше, не содержит ни одного столбца, в котором V9равно 3, поэтому выполнение приведенного выше сценария не приведет к выводу каких-либо данных. Я добавил эти два примера столбцов:

50,Female,,,,,,1,3,,
50,Male,,,,,,1,3,,

и это вывод скрипта:

Grade2 = 3
Age Sex Grade2 Grade1
************************

Women
--------------
50,Female,1,3

Men
--------------
50,Male,1,3
0
01.11.2021, 13:29

Теги

Похожие вопросы