Как использовать команду rev в Linux
Фатмавати Ахмад Дзэнури / Shutterstock
Linux's rev
команда переворачивает строки текста. Эта команда может работать либо с предоставленным текстом, либо с файлом, и кажется обманчиво простой. Но, как и у многих утилит командной строки, его реальная сила становится очевидной, когда вы комбинируете его с другими командами.
rev
command - одна из тех простых утилит Linux, которая на первый взгляд может показаться странной. Он выполняет единственную функцию: переворачивает строки. И кроме возможности распечатать страницу быстрой справки (-h
) и показать вам номер ее версии (-V
), он не принимает никаких параметры командной строки .
Итак, rev
переворачивает строки, и все? Нет вариантов или вариантов? Ну и да, и нет. Да, в нем нет перестановок, но нет, это еще не все. Из этого туториала Вы узнаете, как комбинировать его для выполнения эффективных операций.
Когда вы используете rev
как строительный блок в более сложных последовательностях команд, он действительно начинает показывать свою ценность. rev
является одной из группы команд (например, tac
и yes
), которые являются фасилитаторами. Их полезность легче понять, если вы увидите, как они делают использование других команд более эффективным.
Использование команды rev
Используется в командной строке без других параметров, rev
принимает любой типизированный ввод, меняет его, а затем печатает в окне терминала. Он продолжает делать это, пока вы не нажмете Ctrl + C для выхода.
rev
Реклама
Если вы наберете текст и нажмете Enter, получится echo
напечатайте строку в обратном порядке - если вы не предоставите ей палиндром , конечно.
Передача текста в rev
Вы можете использовать rev
для перенаправления текста в rev
.
rev
Вы также можете использовать cut
чтобы перевернуть содержимое всего текстового файла, строка за строкой. В этом примере у нас есть файл, содержащий список имен файлов. Файл называется filelist.txt.
echo
Каждая строка считывается из файла, переворачивается, а затем выводится в окно терминала.
Комбинирование rev с другими командами
Вот пример использования конвейера ввода, который вызывает rev
дважды.
Эта команда удаляет последний символ из строки текста. Это может быть полезно для удаления знаков препинания. Нам нужно использовать rev
приказать раздеть персонаж .
cut
Давайте разберемся с этим.
-c
отправляет строку в первый вызовcut
.2-
переворачивает строку и направляет ее вcut
.2-5
(символы) опция сообщаетrev
чтобы вернуть последовательность символов из строки.sed
опция сообщаетawk
чтобы вернуть диапазон символов от символа два до конца строки. Если бы было указано второе число, напримерrev
, диапазон был бы от двух до пяти символов. Отсутствие второго числа означает до конца строки.- Перевернутая строка за вычетом первого символа передается в
cut
который меняет местами строку, так что она возвращается в исходный порядок.
Поскольку мы удалили первый символ перевернутый строка, мы обрезали последний символ оригинал нить. Да, это можно сделать с помощью echo
или rev
, но это более простой синтаксис.
Разделение последнего слова
Мы можем использовать аналогичный прием, чтобы вернуть последнее слово строки.
РекламаКоманда аналогична предыдущей: снова используется rev
дважды. Различия заключаются в способе cut
Команда используется для выделения частей текста.
-d' '
Вот разбивка команды:
cut
отправляет строку в первый вызов-f1
.cut
переворачивает строку и направляет ее вrev
.less
Параметр (разделитель) сообщаетrev
чтобы вернуть последовательность символов, разделенных пробелом.cut
опция сообщаетrev
чтобы вернуть первую часть строки не содержащий разделитель. Другими словами, первая часть предложения до первого пробела.- Перевернутое первое слово передается в
cut
который меняет местами строку, так что она возвращается в исходный порядок.
Потому что мы извлекли первое слово из перевернутый строка, мы обрезали последнее слово оригинал нить. Последним словом предложения было слово, и оно печатается для нас.
Обрезка содержимого из файлов
Допустим, у нас есть файл, содержащий список имен файлов, имена которых заключены в кавычки. Мы хотим убрать кавычки из имен файлов.
Посмотрим на файл:
-c
Содержимое файла отображается в cut
.
Мы можем удалить знаки препинания с обоих концов каждой строки с помощью следующей команды. В этой команде используются оба 2-
и cut
дважды.
rev.
Реклама
Имена файлов указаны для нас без кавычек.
Команда разбивается так:
rev
меняет местами строки в файле и направляет их вcut
.-c
(символы) опция сообщаетcut
чтобы вернуть последовательность символов из каждой строки.2-
опция сообщаетcut
чтобы вернуть диапазон символов от символа два до конца каждой строки.- Перевернутые строки за вычетом их первых символов передаются в
ls
rev
переворачивает строки, чтобы они вернулись в исходный порядок. Они подключены кrev
второй раз.cut
(символы) опция сообщаетcut
чтобы вернуть последовательность символов из каждой строки.-d'.'
опция сообщаетcut
чтобы вернуть диапазон символов от символа два до конца каждой строки. Это перескакивает через ведущую кавычку, которая является символом в каждой строке.
Много трубопроводов
Вот команда, которая возвращает отсортированный список всех расширений файлов в текущем каталоге. Он использует пять различных команд Linux.
rev
Процесс прост:
rev
перечисляет файлы в текущем каталоге. Они передаются по конвейеру вsort
.sort
меняет имена файлов на обратные и направляет их вuniq
.uniq
возвращает первую часть каждого имени файла до разделителя.-c
сообщаетuniq
использовать период. как разделитель. Часть перевернутых имен файлов до первой точки - это расширения файлов. Они передаются по конвейеру вrev
.rev
изменяет расширения файлов в их исходный порядок. Они подключены кecho one two three | rev
.rev filelist.txt
сортирует расширения файлов и направляет результаты вecho 'Remove punctuation.' | rev | cut -c 2- | rev
.echo 'Separate the last word' | rev | cut -d' ' -f1 | rev
возвращает отдельный список для каждого типа уникального расширения файла. Обратите внимание, что если у файла нет расширения (например, для make-файла, каталогов Help и gc_help), отображается полное имя файла.
Чтобы завершить его, добавьте
less filelist.txt(count) параметр командной строки для
rev filelist.txt | cut -c 2- | rev | cut -c 2-команда.
ls | rev | cut -d'.' -f1 | rev | sort | uniq
Теперь мы получаем отсортированный список различных типов файлов в текущем каталоге с указанием количества каждого из них.
Это довольно изящный однострочник!
drawroF и ot drawkcaB gnioG
Иногда, чтобы идти вперед, нужно вернуться назад. И, как правило, вы быстрее всех продвигаетесь вперед в составе команды.
Добавить
ls | rev | cut -d'.' -f1 | rev | sort | uniq -cв свой репертуар команд перехода, и вскоре вы будете использовать его для упрощения сложных последовательностей команд.
СВЯЗАННЫЙ: Лучшие ноутбуки с Linux для разработчиков и энтузиастов
ПРОЧИТАЙТЕ СЛЕДУЮЩИЙ- & rsaquo; Как использовать каналы в Linux
- & rsaquo; Киберпонедельник 2021: лучшие технические предложения
- & rsaquo; Что такое защита от падений MIL-SPEC?
- & rsaquo; Папке на компьютере 40 лет: как звезда Xerox создала рабочий стол
- & rsaquo; Функции и формулы в Microsoft Excel: в чем разница?
- & rsaquo; 5 сайтов, которые должен добавить в закладки каждый пользователь Linux
- & rsaquo; Как найти упакованный Spotify 2021
Дэйв Маккей впервые использовал компьютеры, когда в моде была перфолента, и с тех пор он занимается программированием. Проработав более 30 лет в ИТ-индустрии, он теперь работает журналистом в области информационных технологий. За свою карьеру он работал программистом-фрилансером, менеджером международной группы разработчиков программного обеспечения, менеджером проекта ИТ-услуг, а в последнее время - специалистом по защите данных. Его статьи были опубликованы на сайтах howtogeek.com, cloudsavvyit.com, itenterpriser.com и opensource.com. Дэйв - евангелист Linux и сторонник открытого исходного кода.
Прочитать полную биографию