LINUX.ORG.RU

Не осилил ABS ;(


0

0

Есть файл с различными цифрами в 4 столбца, разделённые ; (точкой с запятой)

Есть 2 условия:
1) если 1<4, то 4 поменять местами с 2, а 1 - с 3
2) если 1>4, то 1 поменять местами с 2, а 4 - с 3.

Что-то никак не соображу, с какого конца зайти.

Deleted

это в сторону перла. в sh нет массивов, поэтому решение если и возможно, то будет жутко громоздким и непонятным.

Komintern ★★★★★
()

Написать скрипт на awk типа такого:
awk -F; '{
    if ($1 < $4) {
        print $3,$4,$1,$2;
    } else {
        if ( $1 > $4 ) {
            print $2,$1,$4,$3;
        } else {
            print $1,$2,$3,$4;
        }
    }
}'

> 2) если 1>4, то 1 поменять местами с 2, а 4 - с 2.

Наверно тут опечатка.

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

Там заэскейпить ; надо и вставить правильные разделители в print. Но это уж сам сделай.

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

Ага, спасибо. Всё-таки надо будет подучить awk... Как-то у меня мысли в сторону cut'ов ушли...

> Наверно тут опечатка.

Да, верно, исправил.

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