LINUX.ORG.RU

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

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

Зачем лишний $var? Только больше проблем потенциальных (например, если будет начинаться с - или ещё чего). В таких случаях лучше сразу в файл и выводить, без промежуточного хранения в переменной:

grep -nv '^$' $file \
    | sort -t':' -k2 -u \
    | sort -t':' -k1 \
    | sed -E 's/^[0-9]+://' \
    > "$file"

upd: А, тут тот же файл, с которого читается… Ну тогда так:

grep -nv '^$' $file \
    | sort -t':' -k2 -u \
    | sort -t':' -k1 \
    | sed -E 's/^[0-9]+://' \
    | sponge "$file"

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

Зачем лишний $var? Только больше проблем потенциальных (например, если будет начинаться с - или ещё чего). В таких случаях лучше сразу в файл и выводить, без промежуточного хранения в переменной:

grep -nv '^$' $file \
    | sort -t':' -k2 -u \
    | sort -t':' -k1 \
    | sed -E 's/^[0-9]+://' \
    > "$file"

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

Зачем лишний $var? Только больше проблем потенциальных (например, если будет начинаться с - или ещё чего). В таких случаях лучше сразу в файл и выводить, без промежуточного хранения в переменной:

grep -nv '^$' $file \
    | sort -t':' -k2 -u \
    | sort -t':' -k1 \
    |  sed -E 's/^[0-9]+://' \
    > "$file"