Решено: Хитрое объединение файлов

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

suhanov
Сообщения: 92
ОС: RedHat 9; Ubuntu 6.06.1 LTS

Решено: Хитрое объединение файлов

Сообщение suhanov »

Есть два текстовых файла с одинаковым количеством строк. Например, строка в первом: aaa bbb ccc, а строка во втором: ddd eee fff. Нужно сделать третий файл, который бы состоял из такого же количества строк, но объединённых из первого и второго файла, т.е. на выходе строка должна состоять из следующего: aaa bbb ccc ddd eee fff. Как можно сие провернуть?
Спасибо сказали:
Аватара пользователя
csx
Сообщения: 302
Статус: Сыч Домовый
ОС: Что сломалось, то и чиним...

Re: Решено: Хитрое объединение файлов

Сообщение csx »

Коряво, но просто и наглядно :)

Код: Выделить всё

 #!usr/bin/perl

$arg1 = $ARGV[0];
$arg2 = $ARGV[1];

$cnt = 0;

open F, $arg1;
@file1 = <F>;
close F;

open F, $arg2;
@file2 = <F>;
close F;

foreach $line (@file1) {
        $line =~ s/\n/ /;
        print $line;
        print $file2[$cnt];
        $cnt++;
};


Код: Выделить всё

#perl cont.pl fle1.txt file2.txt > otufile.txt
-- Как называется болезнь когда всё время по телефону разговариваешь?
-- Техподдержка...
Спасибо сказали:
Egan
Сообщения: 247

Re: Решено: Хитрое объединение файлов

Сообщение Egan »

А почему не просто:

paste файл1 файл2 > новый_файл
Спасибо сказали:
Аватара пользователя
csx
Сообщения: 302
Статус: Сыч Домовый
ОС: Что сломалось, то и чиним...

Re: Решено: Хитрое объединение файлов

Сообщение csx »

2 Egan
:rolleyes: А!.... Да?... Хм.... :blush:
-- Как называется болезнь когда всё время по телефону разговариваешь?
-- Техподдержка...
Спасибо сказали:
Аватара пользователя
pzp-5
Сообщения: 558
Статус: Главный модератор "Пингвинария" на Лафоксе.

Re: Решено: Хитрое объединение файлов

Сообщение pzp-5 »

Egan писал(а):
16.03.2007 15:38
А почему не просто:

paste файл1 файл2 > новый_файл

Супер!!!
Спасибо за простое решение.
Век живи - век учись (так и помрешь старым дураком учеником).
А я на баше "наваял":

Код: Выделить всё

#!/bin/bash
# string_plus.sh - построчное ссклеивание двух текстовых файлов
# Использование: string_plus.sh file1 file2

# Подсчитываем количества строк в первом файле:
LONG=$(cat "$1" | wc -l)
# Обнуляем счетчик строк:
NUM=0
# Обнуляем выходной файл:
echo > OUT_FILE.txt
# Пока не дошли до конца файла, выполняем:
until [ "$NUM" -gt "$LONG" ] ;  do
# Увеличиваем номер счетчика:
let NUM=NUM+1
# Выдергиваем из файлов строки под номером $NUM и добавляем склеенную строку в выходной файл:
echo "$(sed -n "$NUM"p "$1") $(sed -n "$NUM"p "$2")" >> OUT_FILE.txt
done
Угадайте: где на фотографии, которая представляет мой аватавр, спрятана птичка?
Спасибо сказали: