The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Объединение двух файлов без совпадающих полей"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Объединение двух файлов без совпадающих полей"
Сообщение от MikeK Искать по авторуВ закладки on 06-Авг-03, 09:56  (MSK)
Доброго утра, уважаемые!
Большая просьба - объясните, как можно объединить два файла (количество строк равное,но нет ни одного совпадающего поля) так,
чтобы в итоге получилось следующее - конечный файл содержал строки,
состоящие из двух строк предыдущих файлов.
1-ая строка ф.1 1-ая строка ф.2
2-ая строка ф.1 2-ая строка ф.2
...............................
N-ная строка ф.1 N-ная строка ф.2
Платформа - HP-UX B.11.00
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Объединение двух файлов без совпадающих полей"
Сообщение от Soldier Искать по авторуВ закладки on 06-Авг-03, 11:41  (MSK)
>Доброго утра, уважаемые!
>Большая просьба - объясните, как можно объединить два файла (количество строк равное,но
>нет ни одного совпадающего поля) так,
>чтобы в итоге получилось следующее - конечный файл содержал строки,
>состоящие из двух строк предыдущих файлов.
>1-ая строка ф.1 1-ая строка ф.2
>2-ая строка ф.1 2-ая строка ф.2
>...............................
>N-ная строка ф.1 N-ная строка ф.2
>Платформа - HP-UX B.11.00


Интересно, вам это для дела или поприкалываться? :)

Если чисто на shell и до 9999 строк то можно так (результат в файле out):

#!/bin/bash

#В форуме некорректно отображается format-string: ЗДЕСЬ ПЕРЕД 04d НУЖНО ПОСТАВИТЬ %
cat file1 | awk '{i++;printf "04d %s\n",i,$0;}' > out1
cat file2 | awk '{i++;printf "04d %s\n",i,$0;}' > out2

#Одной строкой
cat out1 out2 | sort | awk '{pos=length($1)+2; printf substr($0,pos); line++; if (!(line%2)) printf "\n";}' > out
#--------------

^^^^^^^^ Ужас.... Гораздо проще на C или perl ;-)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Объединение двух файлов без совпадающих полей"
Сообщение от vnp emailИскать по авторуВ закладки on 06-Авг-03, 21:49  (MSK)
>>Доброго утра, уважаемые!
>>Большая просьба - объясните, как можно объединить два файла (количество строк равное,но
>>нет ни одного совпадающего поля) так,
>>чтобы в итоге получилось следующее - конечный файл содержал строки,
>>состоящие из двух строк предыдущих файлов.
>>1-ая строка ф.1 1-ая строка ф.2
>>2-ая строка ф.1 2-ая строка ф.2
>>...............................
>>N-ная строка ф.1 N-ная строка ф.2
>>Платформа - HP-UX B.11.00
>
>
>Интересно, вам это для дела или поприкалываться? :)
>
>Если чисто на shell и до 9999 строк то можно так (результат
>в файле out):
>
>#!/bin/bash
>
>#В форуме некорректно отображается format-string: ЗДЕСЬ ПЕРЕД 04d НУЖНО ПОСТАВИТЬ %
>cat file1 | awk '{i++;printf "04d %s\n",i,$0;}' > out1
>cat file2 | awk '{i++;printf "04d %s\n",i,$0;}' > out2
>
>#Одной строкой
>cat out1 out2 | sort | awk '{pos=length($1)+2; printf substr($0,pos); line++; if (!(line%2)) printf "\n";}' > out
>#--------------
>
>^^^^^^^^ Ужас.... Гораздо проще на C или perl ;-)

Кажется, переусложнили Вы чуточку. Если уж
совсем-совсем на shell, то

#!/bin/bash

while [ true ]; do
    read -u 3 data1 || break
    read -u 3 data2
    echo $data1 " " $data2
done 3<file1 4<file2


  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Объединение двух файлов без совпадающих полей"
Сообщение от Soldier Искать по авторуВ закладки on 06-Авг-03, 22:10  (MSK)

>Кажется, переусложнили Вы чуточку. Если уж
>совсем-совсем на shell, то
>
>#!/bin/bash
>
>while [ true ]; do
>    read -u 3 data1 || break
>    read -u 3 data2
>    echo $data1 " " $data2
>done 3<file1 4<file2


Да пожалуй что не чуточку ;-)
Но как говорится век живи, век учись:)))

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Объединение двух файлов без совпадающих полей"
Сообщение от Bootmen emailИскать по авторуВ закладки on 07-Авг-03, 06:38  (MSK)
>чтобы в итоге получилось следующее - конечный файл содержал строки,
>состоящие из двух строк предыдущих файлов.
>1-ая строка ф.1 1-ая строка ф.2
>2-ая строка ф.1 2-ая строка ф.2
>...............................
Есть хорошая утилита paste как раз для этого
а изыски в виде awk и sed это самопальщина.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Объединение двух файлов без совпадающих полей"
Сообщение от Soldier Искать по авторуВ закладки on 07-Авг-03, 09:47  (MSK)
>а изыски в виде awk и sed это самопальщина.
^^^^^^
Ну спасибо! Не дали помереть дураком! :)))


  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру