Наши партнеры

UnixForum

Реклама
  • ИП Попов А.П.
  • ИНН: 602715631406
Женатым лучше не смотреть: танец роскошной Татьяны (видео)
Реклама
  • ИП Попов А.П.
  • ИНН: 602715631406
Это спасет потенцию даже в 70 лет! Продается в каждой аптеке...
Реклама
  • ИП Попов А.П.
  • ИНН: 602715631406
Танец на выпускном взорвал сеть: смотреть без детей
Реклама
  • ИП Попов А.П.
  • ИНН: 602715631406
Этот танец невесты оставит вас без слов! Пересмотрела 10 раз!
Реклама
  • ИП Попов А.П.
  • ИНН: 602715631406
Диалог бабушки и внучки! Такое видео вызывает смех сквозь слезы…


Библиотека сайта rus-linux.net

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

Оригинал: Learning Linux commands: paste
Автор: Rares Aioanei
Дата публикации: 1 марта 2012 года
Перевод: А. Кривошей
Дата публикации перевода: 11 ноября 2012 г.

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.


    Реклама
    • ИП Попов А.П.
    • ИНН: 602715631406
    Галкин и Пугачева станцевали зажигательный танец на Кипре