The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Shell script: дополнить файл"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Shell script: дополнить файл"  +/
Сообщение от shupa (ok) on 12-Мрт-14, 17:19 
Добрый день, господа и дамы.

Сразу к делу:

Есть 2 файла - 1.txt, 2.txt.
В файлах есть текст
1.txt
text1
пустая строка
text2
пустая строка
remove1
2.txt
пустая строка
text3
пустая строка
text4
remove2
Требуется скрипт, который дополнит и заменит совпадающие строки в 2.txt контентом из 1.txt. Т.е. результирующий выход следующий:
2.txt
text1
text2
text3
text4
remove1

Задача простая, но мои познания в скриптинге крайне не велики. Заранее спасибо.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Shell script: дополнить файл"  +/
Сообщение от Andrey Mitrofanov on 12-Мрт-14, 19:57 
> Задача простая, но мои познания в скриптинге крайне не велики. Заранее спасибо.

awk 'BEGIN{while(getline a <"1.txt" && getline a <"2.txt")print a,b}'

или *типа* того.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Shell script: дополнить файл"  +/
Сообщение от михалыч (ok) on 12-Мрт-14, 21:44 
Ударим perl'ом по бездорожью
perl -e '@a=`cat 1.txt`;@b=`cat 2.txt`;for($i=0;$i<@b;$i++){if($b[$i]eq"\n"){$b[$i]=$a[$i]}}print@b'

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Shell script: дополнить файл"  +/
Сообщение от михалыч (ok) on 13-Мрт-14, 06:11 
Если как в первом варианте
perl -e '@a=`cat 1.txt`;@b=`cat 2.txt`;for($i=0;$i<@b;$i++){if($b[$i]eq"\n"){$b[$i]=$a[$i]}}print@b'

text1
text3
text2
text4
remove2

Наверное надо было так
perl -e '@a=`cat 1.txt`;@b=`cat 2.txt`;for($i=0;$i<@a;$i++){if($a[$i]eq"\n"){$a[$i]=$b[$i]}}print@a'

text1
text3
text2
text4
remove1

или ещё и сортировку нужно?

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Shell script: дополнить файл"  +/
Сообщение от ACCA (ok) on 13-Мрт-14, 07:28 
> или ещё и сортировку нужно?

А забрать оба файла через while(<>) и свалить в хеш, а потом объединить два хэша - не?

Хотя давеча такой подход сожрал 20G памяти...

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Shell script: дополнить файл"  +/
Сообщение от pavlinux (ok) on 15-Мрт-14, 21:33 
remove2 куда делось?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

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




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

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