Изучаем команды 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Если не указано имя файла или вместо него стоит '-', используется stdin. |