Вики / Базовые команды
Текстовые инструменты (sort, uniq, cut, wc, tr)
Обработка текста и потоков — сортировка, уникальность, столбцы, подсчёт.
Маленькие утилиты, которые в конвейере (|) решают почти любую задачу обработки
текста. Часто в связке с grep и sed/awk.
sort file # отсортировать строки (лексикографически)
sort -n file # как числа
sort -rn file # по убыванию (числа)
sort -h file # человеко-размеры (2K, 1G)
sort -k2 file # по 2-му полю
sort -t: -k3 -n /etc/passwd # разделитель «:», по 3-му полю, числами
sort -u file # отсортировать + убрать дубли
sort -c file # проверить, отсортирован ли
uniq file # убрать ПОДРЯД идущие дубли (нужен sort!)
sort file | uniq -c # посчитать повторы каждой строки
sort file | uniq -c | sort -rn # топ по частоте
sort file | uniq -d # только повторяющиеся ; -u — только уникальные
cut -d: -f1 /etc/passwd # 1-е поле, разделитель «:»
cut -d: -f1,3 /etc/passwd # несколько полей
cut -c1-10 file # символы 1–10
tr 'a-z' 'A-Z' < file # в верхний регистр
tr -d ' \t' < file # удалить пробелы/табы
tr -s ' ' < file # схлопнуть повторяющиеся пробелы
tr -cd '[:print:]\n' < file # выкинуть непечатаемые
wc -l file ; wc -w file ; wc -c # строк / слов / байт
paste -d, a.txt b.txt # склеить файлы по столбцам
join -t, -1 1 -2 1 a.csv b.csv # реляционный join по ключу (оба отсортированы)
column -t -s, data.csv # выровнять в таблицу
comm -12 <(sort a) <(sort b) # строки, общие для двух файлов
# топ-10 IP в access.log
awk '{print $1}' access.log | sort | uniq -c | sort -rn | head
# уникальные значения колонки CSV
cut -d, -f3 data.csv | sort -u
# самые частые слова
tr -cs '[:alpha:]' '\n' < text | tr 'A-Z' 'a-z' | sort | uniq -c | sort -rn | head
# разница двух списков (что есть в A, но нет в B)
comm -23 <(sort A) <(sort B)
# красиво показать /etc/passwd как таблицу
column -t -s: /etc/passwd
sort -u file # сортировка + уникальные
sort file | uniq -c | sort -rn # частота строк (топ)
cut -d: -f1 file # колонка по разделителю
tr 'a-z' 'A-Z' < file # регистр
column -t -s, file.csv # выровнять в таблицу
comm -12 <(sort a) <(sort b) # пересечение двух файлов
См. также
- Базовые команды с файлами — Базовые команды
- grep (поиск по тексту) — Базовые команды
- sed и awk (обработка текста) — Базовые команды