среда, 31 марта 2010 г.

Объединение двух файлов в один построчно

Возникла у меня потребность в объединении двух текстовых файлов в один. Да не просто так, а чтобы их строки чередовались друг с другом. Для чего это нужно? Для того, чтобы организовать простейший, небольшой по размеру справочник для программы/скрипта/сайта и т.д. Я таким образом делал справочник МКБ-10 - коды заболеваний, который нужен был по работе. Что долго рассказывать, айда под кат за сокральными знаниями ;)



Итак, вот у меня два файла:
code.txt
A0001
A0002
.....[пропущено]......
Z9999

и descr.txt
Первый элемент из А
Второй элемент из А
...........[пропущено]............
Последний элемент из Z

На выходе у меня должно получиться следующий файл dict.txt:
A0001
Первый элемент А
A0002
Второй элемент А
..........[пропущено]............
Z9999
Последний элемент Z

Делается это очень и очень просто одной командой. Да! Shell-скрипты - это чудо какое-то :)


paste -d "\n" code.txt descr.txt > dict.txt
Вот что говорит МАН по поводу этой команды: "Выводит  на стандартный вывод строки, состоящие из соответствующих строк каждого ФАЙЛА, разделенных символом табуляции." Но это по-умолчанию. А если задать параметр -d (от англ. Delimetr - Разделитель) и указать этот самый разделитель, в данном случае "Перевод строки" - символ "\n", то вместо табуляции каманда будет выводить строки, разделенные "переводом строки".

Пишу для себя, чтобы запомнить и не потерять. Если кому что непонятно, то курите мануал или теребите в коментах :D

1 комментарий: