- Команда Tr в Linux с примерами
- Tr Command in Linux with Examples
- В этом руководстве мы покажем вам, как использовать tr команду, на практических примерах и подробных объяснениях наиболее распространенных вариантов.
- Как использовать tr команду
- Объединение вариантов
- Примеры команд Tr
- Преобразовать нижний регистр в верхний регистр
- Удалить все нечисловые символы
- Поместите каждое слово в новую строку
- Удалить пустые строки
- Печать $PATH каталогов на отдельной строке
- Вывод
- Команда Sed для удаления строки
- Sed в Linux
- Удаление строки с помощью sed
- Удалить одну строку
- Удалить диапазон строки
- Удалить несколько строк
- Удалить все строки, кроме указанного диапазона
- Удалить пустые строки
- Удалить линии по шаблону
- Удалить строки, начинающиеся с определенного символа
- Удалить строки, заканчивающиеся определенным символом
- Удаление строк, соответствующих шаблону, и следующей строки
- Удаление строки от совпадения с шаблоном до конца
- Последняя мысль
- Команда tr в Linux
- Синтаксис команды tr в Linux
- Примеры использования tr
- 1. Замена символов через аргументы
- 2. Работа с потоками
- Выводы
Команда Tr в Linux с примерами
Tr Command in Linux with Examples
В этом руководстве мы покажем вам, как использовать tr команду, на практических примерах и подробных объяснениях наиболее распространенных вариантов.
tr утилита командной строки в системах Linux и Unix, которая переводит, удаляет и сжимает символы из стандартного ввода и записывает результат в стандартный вывод.
Команда tr может выполнять такие операции, как удаление повторяющихся символов, преобразование прописных букв в строчные, а также замена и удаление основных символов. Как правило, он используется в сочетании с другими командами через трубопровод.
Как использовать tr команду
Синтаксис tr команды следующий:
tr принимает два набора символов, обычно одинаковой длины, и заменяет символы первого набора соответствующими символами из второго набора.
A SET — это в основном строка символов, включая специальные символы с обратной косой чертой.
В следующем примере tr будут заменены все символы из стандартного ввода (baksdev) путем сопоставления символов из первого набора с совпадающими символами из второго набора.
Каждое вхождение l заменяется на r , i с e и n на d :
Наборы символов также могут быть определены с использованием диапазонов символов. Например, вместо того, чтобы писать:
ты можешь использовать:
При использовании опции -c ( —complement ) tr заменяются все символы, которых нет в SET1.
В приведенном ниже примере все символы, кроме «li», будут заменены последними символами из второго набора:
Как вы могли заметить, вышеприведенный вывод имеет еще один видимый символ, чем ввод. Это связано с тем, что echo команда печатает невидимый символ новой строки, \n который также заменяется на y . Чтобы отобразить строку без новой строки, используйте -n параметр.
Опция -d ( —delete ) указывает tr на удаление символов, указанных в SET1. При удалении символов без сжатия указывайте только один набор.
Приведенная ниже команда удалит l , i и z символы:
Символ L не удаляется, потому что ввод включает в себя заглавные буквы, в L то время как l символы в наборе строчные.
Опция -s ( —squeeze-repeats ) заменяет последовательность повторяющихся вхождений набором символов в последнем SET.
В следующем примере tr удаляются повторяющиеся пробелы:
Когда используется SET2, последовательность символов, указанная в SET1, заменяется на SET2.
Опция -t ( —truncate-set1 ) вынуждает tr обрезать SET1 до длины SET2 перед дальнейшей обработкой.
По умолчанию, если SET1 больше, чем SET2, tr будет повторно использоваться последний символ SET2. Вот пример:
Вывод показывает, что символ e из SET1 соответствует самому последнему символу из SET2, а именно 2 :
Теперь используйте ту же команду с -t опцией:
Вы можете видеть, что последние три символа SET1 удалены. SET1 становится ‘ab’, такой же длины, как SET2, и замена не производится.
Объединение вариантов
Команда tr также позволяет комбинировать ее параметры. Например, следующая команда первого заменяет все символы , кроме i с , 0 а затем сжимает повторяющиеся 0 символы:
Примеры команд Tr
В этом разделе мы рассмотрим несколько примеров общего использования tr команды.
Преобразовать нижний регистр в верхний регистр
Преобразование нижнего регистра в верхний или обратный является одним из типичных вариантов использования tr команды. [:lower:] соответствует всем символам в нижнем регистре и [:upper:] соответствует всем символам в верхнем регистре.
Вместо классов персонажей вы также можете использовать диапазоны:
Чтобы преобразовать верхний регистр в нижний регистр, просто поменяйте местами наборы.
Удалить все нечисловые символы
Следующая команда удаляет все нечисловые символы:
[:digit:] обозначает все цифры, и, используя -c опцию, команда удаляет все не цифры. Вывод будет выглядеть так:
Поместите каждое слово в новую строку
Чтобы поместить каждое слово в новую строку, нам нужно сопоставить все не алфавитно-цифровые символы и заменить их новой строкой:
Удалить пустые строки
Чтобы удалить пустые строки, просто сожмите повторяющиеся символы новой строки:
В команде выше мы используем символ перенаправления передать содержание file.txt в tr команде. Перенаправление > записывает вывод команды в new_file.txt .
Печать $PATH каталогов на отдельной строке
$PATH Переменная окружающей среды является двоеточиями список каталогов, сообщает оболочке , какие каталоги для поиска исполняемых файлов при вводе команды.
Чтобы напечатать каждый каталог в отдельной строке, нам нужно сопоставить двоеточие ( : ) и заменить его новой строкой:
Вывод
tr — команда для перевода или удаления символов
Хотя очень полезно, tr может работать только с одиночными символами. Для более сложного сопоставления с образцом и работы со строками, вы должны использовать sed или awk .
Источник
Команда Sed для удаления строки
Главное меню » Linux » Команда Sed для удаления строки
Эта статья продемонстрирует, как использовать sed для удаления строки из текста.
Sed в Linux
Полное имя sed дает нам представление о методе его работы. Sed принимает вводимый текст как «поток». Текст может поступать откуда угодно – из текстового файла или стандартного вывода (STDOUT). После ввода данных sed работает с ним построчно.
Для демонстрации я сгенерировал простой текстовый файл.
Удаление строки с помощью sed
Чтобы удалить строку, мы воспользуемся командой sed «d». Обратите внимание, что вы должны объявить, какую строку нужно удалить. В противном случае sed удалит все строки.
Удалить одну строку
Следующая команда sed удалит первую строку текста.
В основном, чтобы удалить строку, вам нужен номер строки целевой строки. Удалим строку 5.
Чтобы удалить последнюю строку текстового файла, вместо ручного вычисления номера строки используйте «$».
Удалить диапазон строки
Sed может удалить ряд строк. Здесь минимальное значение строки равно 1, а максимальное значение строки – 5. Чтобы объявить диапазон, мы используем запятую (,).
Удалить несколько строк
Что, если строки, которые вы хотите удалить, не находятся в фиксированном диапазоне? Взгляните на следующую команду sed. Обратите внимание, что мы используем точку с запятой (;) в качестве разделителя. По сути, каждый параметр с разделителями представляет собой отдельную команду sed.
Удалить все строки, кроме указанного диапазона
В следующем примере sed сохранит только строки, описанные в диапазоне. Здесь, “!” – оператор отрицания, указывающий sed сохранить определенные строки.
Удалить пустые строки
Если в тексте есть несколько пустых или пустых строк, следующая команда sed удалит их все.
Удалить линии по шаблону
Sed может искать определенный узор и выполнять указанные действия на линии. Мы можем использовать эту функцию для удаления определенных строк, соответствующих шаблону.
Давайте посмотрим на следующую демонстрацию. Sed удалит любую строку, содержащую строку «the».
Мы также можем описать несколько строк для поиска. Каждая строка разделяется символом «\|».
Удалить строки, начинающиеся с определенного символа
Чтобы обозначить начало строки, мы будем использовать символ каретки (^).
Следующая команда sed удалит все строки, начинающиеся с цифры. Здесь группа символов «[:digit:]» описывает все цифры (0–9).
Мы также можем описать несколько символов для действительного совпадения. В следующем примере будут найдены все строки, начинающиеся с «t» и «b».
В следующем примере показано, как удалить все строки, начинающиеся с символа верхнего регистра. Здесь мы используем группу символов верхнего регистра «[: upper:]».
Если целевые строки содержат символы нижнего регистра в начале, используйте группу символов нижнего регистра «[: lower:]».
Удалить строки, заканчивающиеся определенным символом
Чтобы обозначить конец строки, мы можем использовать символ «$». Он описывает совпадение с последним вхождением шаблона.
В следующем примере sed удалит строки, заканчивающиеся на «e».
Попробуем поискать по нескольким символам.
Удаление строк, соответствующих шаблону, и следующей строки
Мы уже продемонстрировали, как удалить строку, если шаблон совпадает. Мы также можем расширить и удалить следующую строку.
Ознакомьтесь со следующей командой sed.
Sed будет соответствовать строке, содержащей «the», и также удалит следующую строку.
Удаление строки от совпадения с шаблоном до конца
Мы можем расширить предыдущий пример, чтобы приказать sed удалить все строки, начиная с первого совпадения шаблона.
Здесь sed удалит строку, которая соответствует шаблону «первая» и все последующие строки.
Последняя мысль
Sed – простой инструмент. Однако он может творить чудеса благодаря поддержке регулярных выражений. Sed также легко интегрируется в различные скрипты.
Это было всего лишь краткое руководство, демонстрирующее одну из функций sed – удаление строк. С помощью sed вы можете делать множество других вещей.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
Команда tr в Linux
Текстом в терминале GNU/Linux управляет несколько программ. Их отличие заключается в специфике обработки данных. Объединяя результат работы этих утилит, можно совершать эффективные действия с текстовой информацией. Одной из таких программ является консольная команда tr, которая используется для замены, замещения или удаления символов из стандартного ввода, отправляя результат на стандартный вывод.
Утилита устанавливается вместе практически со всеми дистрибутивами GNU/Linux. В этой статье рассмотрим команду tr Linux, её синтаксис и применение на практике.
Синтаксис команды tr в Linux
Программа обрабатывает текст посимвольно. По умолчанию у её синтаксиса следующий вид (квадратные скобки указывают, что аргумент не обязателен):
tr [КЛЮЧ] . НАБОР1 [НАБОР2]
Всего доступно 4 ключа для уточнения операции над символами:
Ключ | Длинный вариант | Значение |
-c, -C | —complement | Сначала получить дополнение НАБОРА1 |
-d | —delete | Удалить знаки из НАБОРА2, не превращать |
-s | —squeeze-repeats | Замещать последовательность знаков, которые повторяются, из перечисленных в последнем НАБОРЕ, на один такой знак |
-t | —truncate-set1 | Сначала сократить НАБОР1 до размеров НАБОРА2 |
НАБОРЫ указываются как символьные строки. В большинстве случаев символы представляют сами себя. Полный набор опций представлен в следующей таблице:
Опция | Значение |
\HHH | Знак в восьмеричной кодировке (с трех цифр ННН) |
\\ | Обратный слэш |
\b | Забой |
\f | Перевод страницы |
\n | Начать с новой строки |
\r | Возврат каретки |
\t | Горизонтальная табуляция |
\v | Вертикальная табуляция |
ЗНАК1-ЗНАК2 | Все знаки от ЗНАК1 до ЗНАК2 в порядке возрастания |
[ЗНАК*] | ЗНАК заполняет НАБОР2 до длины НАБОРА1 |
[ЗНАК*ЧИСЛО] | Указанное ЧИСЛО одинаковых ЗНАКОВ; ЧИСЛО восьмиричных, если начинается с 0 |
[:alnum:] | Все буквы и цифры |
[:alpha:] | Все буквы |
[:blank:] | Все горизонтальные пробельные символы |
[:cntrl:] | Все управляющие знаки |
[:digit:] | Все цифры |
[:graph:] | Все печатаемые знаки, исключая пробел |
[:lower:] | Все маленькие буквы |
[:print:] | Все печатаемые знаки, включая пробел |
[:punct:] | Все знаки пунктуации |
[:space:] | Все вертикальные и горизонтальные пробельные знаки |
[:upper:] | Все большие буквы |
[:xdigit:] | Все шестнадцатиричные цифры |
[=ЗНАК=] | Все знаки, эквивалентные ЗНАКУ |
Превращение осуществляется, если не указано -d для обоих НАБОРОВ. -t можно использовать только во время превращения. Если нужно, НАБОР2 будет расширен до размеров НАБОРА1 повторением последнего символа. Лишние символы НАБОРА2 будут пропущены. Гарантированно расширяются в порядке возрастания только [:lower:] и [:upper:]. Использованные символы в НАБОРЕ2 во время превращения можно применять для определения превращения регистра только в парах. -s использует последний указанный набор. Уплотнение происходит после превращения или удаления.
Примеры использования tr
1. Замена символов через аргументы
Программа по умолчанию работает со стандартным вводом/выводом.
Пример 1. Заменить все x на z.
Далее следует ввести строку и нажать Enter. Ниже будет выведен обработанный результат и представлена возможность повторного ввода.
Для выхода из программы нажмите Ctrl + D.
Пример 2. Удалить все буквы в нижнем регистре.
Пример 3. Уплотнить повторяющиеся буквы большого и малого регистров.
tr -s [:upper:][:lower:]
2. Работа с потоками
Команда tr может принимать на вход результат работы другой программы с использованием пайпа.
Пример 4. Вывести первые три строки файла /etc/passwd, заменив двоеточия (используемые в качестве разделителя данных) на пробелы.
head -n3 /etc/passwd | tr ‘:’ ‘ ‘
Также можно использовать перенаправление потока ввода и вывода.
Пример 5. Заменить цифры IP-адреса файла addresses2 на буквы a, и результат записать в файл addresses3.
tr 8 a addresses3
Выводы
Команда tr — это качественный инструмент для работы с символами строк в терминале GNU/Linux. С её помощью можно редактировать информацию со стандартного или перенаправленного потока ввода и выводить результат на экран или в файл.
Источник