Календарь на Май 2024 года: calendar2008.ru/2024/may/
Навигация
Главная »  Linux 

Изучаем команды Linux: paste


Источник: rus-linux
А. Кривошей
1. Введение paste - одна из наименее известных команд в GNU/Linux (или других Unix-системах), но люди, занимающиеся написанием скриптов оболочки для синтаксического анализа текста, знают о ней и могут подтвердить ее полезность. Это очень простая команда, всего с двумя опциями, использующаяся для вывода бок о бок строк из двух и более файлов. В связи с простотой команды на этот раз не будет таблицы с примерами использования.

2. Использование paste Представьте, что у вас есть конфигурационный файл, например .cvsrc, а также более поздняя версия этого файла, скажем .cvsrc.new. Для того, чтобы решить, нужно ли заменять старый файл новым, необходимо наглядно отобразить различия между ними. Под рукой всегда есть команда diff(1), но вы просто хотите просмотреть строки бок о бок, без дополнительных примечаний. По умолчанию paste использует в качестве разделителя TAB, поэтому строки из первого файла (.cvsrc) будут отделены от строк из второго файла (.cvsrc.new). Пример:

$ echo .cvsrc > .cvsrc $ echo .cvsrc.new > .cvsrc.new $ cat .cvsrc .cvsrc.new .cvsrc .cvsrc.new $ paste .cvsrc .cvsrc.new .cvsrc  .cvsrc.new 
В случае если вам необходимо изменить разделитель, используйте опцию -d и задайте разделитель вручную. В примере ниже мы использовали в качестве разделителя ":":

$ paste .cvsrc .cvsrc.new .cvsrc  .cvsrc.new $ paste -d : .cvsrc .cvsrc.new .cvsrc:.cvsrc.new 
Если вы хотите пронумеровать строки, используйте nl(1)

$ paste -d : .cvsrc .cvsrc.new / nl 1  .cvsrc:.cvsrc.new 
Если же вам нужны продвинутые возможности по программированию, можно использовать, например, awk. Одним из примеров области применения paste может быть работа с конфигурационными файлами, если менеджер пакетов устанавливает их новые версии одновременно с исполняемыми файлами. Но теперь, когда мы изучили основы, можно приступить к опциям paste.

2.1. Опции paste
  • --help - стандартная для утилит Linux опция, не нуждается в пояснениях
  • --version - тоже стандарт
  • -d, --delimiters=... - сменить разделитель TAB на другой (список)
  • -s, --serial - вместо того, чтобы выводить строки из файлов рядом друг с другом, они выводятся последовательно.
  • Если не указано имя файла или вместо него стоит '-', используется stdin.



     

     Cron и crontab - как планировать задачи в Linux.
     Перспективы самостоятельного изучения архитектуры операционной системы реального времени.
     Многопоточная реализация алгоритма кеширования CART.
     Защита от спама и не только: "Лаборатория Касперского" совершенствует защиту корпоративных почтовых серверов.
     Пять советов по созданию успешных групп дисциплинированного исполнения методов гибкой разработки.


    Главная »  Linux 

    © 2024 Team.Furia.Ru.
    Частичное копирование материалов разрешено.