Библиотека сайта rus-linux.net
Руководство по команде tac для начинающих
Оригинал: Linux tac Command Tutorial for Beginners (with Examples)
Автор: Himanshu Arora
Дата публикации: 22 мая 2018 года
Перевод: А. Кривошей
Дата перевода: декабрь 2018 г.
Мы уже обсуждали команду cat в одной из наших предыдущих статей. Как вам известно, команда cat в основном используется для отображения содержимого файла. Однако существует команда, которая точно противоположна тому, что делает cat.
Этой утилитой является tac, и в этой статье мы обсудим ее основы, используя несколько простых для понимания примеров. Прежде чем мы это сделаем, необходимо отметить, что все примеры в этой статье были протестированы в Ubuntu 16.04 LTS.
Команда tac
Tac противоположна cat в том смысле, что вывод, который она производит, представлен таким образом, что последняя строка отображается первой, затем следует предпоследняя строка и так далее. Ниже приведен синтаксис утилиты:
tac [OPTION]... [FILE]...
И вот что говорит man-страница tac:
Записывает каждый FILE в стандартный вывод, сначала последнюю строку. Если FILE не задан, читает стандартный ввод.
Ниже приведены примеры в стиле вопрос/ответ, которые должны дать вам представление о том, как работает утилита.
Q1. Как использовать tac?
Просто запустите команду «tac» с именем файла в качестве параметра.
tac [filename]
Например:
tac file2
Таким образом, вы можете видеть, что результат выполнения tac точно противоположен тому, что делает cat.
Q2. Как использовать в tac пользовательский разделитель (не новую строку)?
Для этого вам придется использовать опцию -s. Например, следующая команда
$ echo "1,2" | tac
даст следующий вывод:
1,2
Это потому, что новая строка является разделителем по умолчанию для tac.
Однако, эта команда:
$ echo "1,2" | tac -s
даст следующий вывод:
2 1,
так как разделитель был изменен.
Q3. Как изменить положение разделителя?
Если вы хотите, чтобы tac присоединял разделитель до, а не после вывода, используйте параметр -b.
Например:
echo "1,2" | tac -b -s
даст следующий вывод:
,2 1
Q4. Как сделать, чтобы tac принимал ввод из STDIN?
Если вы хотите, чтобы команда tac принимала ввод со стандартного ввода, просто не передавайте ей имя файла.
$ tac
После того, как вы запустите команду, как указано выше, она будет ждать ввода содержимого. Как только вы закончите с этим, нажмите Ctrl + d, чтобы показать, что все готово, и затем tac произведет вывод на STDOUT.
Заключение
Как вы можете видеть, работу tac легко понять. Количество параметров командной строки ограничено, и мы обсудили большинство из них здесь. Вы можете узнать больше о команде, прочитав ее man-страницу.