Как удалить повторяющиеся числа в столбце файла?

Просто нужно окружить все это соответствующими проверками ошибок:

FNDIR=~/.bash_functions
if [ -d $FNDIR ]
then
    for f in $FNDIR/*.sh
    do
       test -x $f && source $f
    done
fi

Я намеренно не цитирую здесь значения, потому что предполагаю, что у вас не будет домашнего каталога или имени сценария с пробелами. Похоже, что это выходит за рамки надежности и защиты от злого умысла. Поскольку это сценарии, которые вы пишете для себя, я не думаю, что нам нужно заходить так далеко. :)

4
10.08.2016, 17:23
2 ответа

Вот так:

$ uniq inputFile > outputFile

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

$ sort -g inputFile | uniq > outputFile

-g, которая будет сравнивать в соответствии с общим числовым значением.

Или просто используйте sort -nu inputFile > outputFile

6
27.01.2020, 20:49

Сортировка нужна, если вы хотите удалить дубликаты, которые еще не находятся в последовательных строках, например:

cat FILE1 | sort -nu > FILE2

sort -n означает числовую сортировку, а -u удаляет последовательные дубликаты строк (как это делает отдельная команда uniq для отсортированных файлов/данных).

2
27.01.2020, 20:49

Теги

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