Как использовать команду rev в Linux

Терминал Linux на ноутбуке с Ubuntu.

Фатмавати Ахмад Дзэнури / 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
Файлы деготь · pv · Кот · такс · chmod · рукоятка · разница · sed · С участием · человек · толкать · popd · fsck · тестовый диск · seq · fd · пандок · компакт диск · $ ПУТЬ · awk · присоединиться · jq · складывать · уникальный · journalctl · хвостик · государство · ls · fstab · выбросил · меньше · chgrp · Chown · rev · Посмотрите · струны · тип · переименовать · застегивать · распаковать · устанавливать · размонтировать · установить · fdisk · mkfs · rm · rmdir · rsync · df · gpg · мы · нано · mkdir · от · пер · пластырь · конвертировать · rclone · крошить · SRM
Процессы псевдоним · экран · верхняя · Ницца · Ренис · прогресс · Strace · система · tmux · чш · история · в · партия · бесплатно · который · dmesg · usermod · пс · chroot · xargs · tty · мизинец · lsof · vmstat · тайм-аут · стена · да · убийство · спать · судо · его · время · groupadd · usermod · группы · lshw · неисправность · перезагружать · останавливаться · выключение · пароль · lscpu · crontab · Дата · bg · фг
Сети netstat · пинг · трассировка · ip · SS · кто · fail2ban · бмон · ты · Палец · nmap · ftp · завиток · wget · ВОЗ · кто я · В · iptables · ssh-keygen · ufw

СВЯЗАННЫЙ: Лучшие ноутбуки с Linux для разработчиков и энтузиастов

ПРОЧИТАЙТЕ СЛЕДУЮЩИЙ Фотография профиля Дэйва Маккея Дэйв Маккей
Дэйв Маккей впервые использовал компьютеры, когда в моде была перфолента, и с тех пор он занимается программированием. Проработав более 30 лет в ИТ-индустрии, он теперь работает журналистом в области информационных технологий. За свою карьеру он работал программистом-фрилансером, менеджером международной группы разработчиков программного обеспечения, менеджером проекта ИТ-услуг, а в последнее время - специалистом по защите данных. Его статьи были опубликованы на сайтах howtogeek.com, cloudsavvyit.com, itenterpriser.com и opensource.com. Дэйв - евангелист Linux и сторонник открытого исходного кода.
Прочитать полную биографию

Интересные статьи