🐧 Linux Junior. Программирование под Linux.
⚡️ Быстрое преобразование текста: Vim и sed
Регулярные выражения в Vim и утилите sed позволяют за секунды отредактировать многотысячный файл. Ниже — подборка полезных однострочников для повседневных задач.
1️⃣ Изменение регистра букв
🔴 Первую букву в каждой строке сделать заглавной:
Vim:
:%s/^\w/\u&/g
sed:
sed -i 's/^\w/\u&/g' file.txt
🔴 Первую букву каждого слова сделать заглавной:
Vim:
:%s/\<\w/\u&/g
sed:
sed -Ei 's/\b[a-z]/\U&/g' file.txt
Как это работает: спецсимвол \u переводит следующий символ в верхний регистр, \U переводит все последующие символы, а & обозначает найденное совпадение.
2️⃣ Очистка текста от мусора
🔴 Удалить все пустые строки (включая строки с пробелами и табуляцией):
Vim:
:g/^\s*$/d
sed:
sed -i '/^\s*$/d' file.txt
🔴 Удалить все строки-комментарии (начинающиеся с #):
Vim:
:g/^\s*#/d
sed:
sed -i '/^\s*#/d' file.txt
(Команда :g/.../d в Vim полностью удаляет совпадающую строку, а не просто очищает её содержимое).
3️⃣ Форматирование отступов и пробелов
🔴 Заменить 4 пробела на один знак табуляции (\t):
Vim:
:%s/ /\t/g
sed:
sed -i 's/ /\t/g' file.txt
🔴 Удалить концевые пробелы (Trailing spaces) в конце строк:
Vim:
:%s/\s\+$//e
sed:
sed -i 's/[ \t]*$//' file.txt
⚠️ Заметка по ключу sed -i:
Флаг -i перезаписывает файл «на месте». На macOS (BSD sed) команда потребует указать пустые кавычки для резервной копии: sed -i '' 's/.../.../' file.txt. Если хотите подстраховаться, используйте sed -i.bak, чтобы автоматически создать бэкап файла перед изменением.
8 · 968 ·