텍스트 파일에서 같은 항목을 가진 부분(?)을 다른 파일 안에서 가져와서 더 할 수 있나요?

그러니까 일부분이 같은 내용을 가진 2개의 파일이 있을경우 한 파일의 내용을 다른 파일의 같은 항목에 더해서 쓸 수 있나요?

그러니까 예를 들면

1.txt의 내용이
임꺽정
산적

홍길동
도둑놈

전우치
이상한놈
.
.
.

2.txt의 내용이
홍길동
활빈당
율도국

전우치
도사
율도국

로빈훗
도둑놈

이라고 되어 있을때

이걸 합쳐서

임꺽정
산적

홍길동
도둑놈
활빈당
율도국

전우치
이상한놈
도사
율도국

로빈훗
도둑놈

이렇게 만드는게 가능할 까요? 아마도 스크립트 쓰면 될 것 같은데 문제는 제가 프로그래밍쪽은 전혀 몰라서요.
이게 얼마 안되면 그냥 C&P해 버리겠는데 10000라인 단위가 넘어가니 도저히 엄두가 나질 않네요.
혹시 스크립트 짜주실 수 있는분 안계신가요?

스크립트는 아마 영어로 구글링 해보면 비슷한거 있을겁니다.
찾아보세요.

양이 많으시다니 될지는 모르겠지만, 혹시 모르니

http://textmechanic.com/Remove-Duplicate-Lines.html

이거 이용해보시길.
텍스트 두가지 복사해 넣고,
중복제거 누르면 중복된 라인들 지워줍니다.

저 사이트에 텍스트 관련 툴은 여러가지 있으니 응용해보세요.

제 설명이 부족했었나보군요.
제가 하려는 작업은 중복 줄을 제거하는게 아니라요.

2개의 텍스트파일은 어떤 로그를 가진 파일들입니다.
근데 문제는 서로 다른 데이터를 가진 파일인데 이걸 같은 시간 항목 끼리 묶어서 한 파일을 만들려는 겁니다.

이중 한 파일은 5초 단위로 로그가 기록 되어 있고 다른 파일은 1초 단위로 기록되어 있습니다.
이 파일들은 각 시간 단위별로 데이터가 저장되어 있고 이 시간 단위는 UTC로 기록 되어 있으며 두 파일모두 같은 문자열을 가지고 있고요.

근데 첫번째 파일은 5초 단위라 1초 단위로 기록 된 두번째 파일에서 같은 시간의 항목에다가 첫 번째 시간대의 내용을 끼워넣으려는 겁니다.

예를 들면 첫 파일은

2012-12-26T23:43:01Z
[list:1tmueb70]148
152[/list:u:1tmueb70]

2012-12-26T23:43:06Z
[list:1tmueb70]148
162[/list:u:1tmueb70]

이고 두번째 파일이

2012-12-26T23:43:05Z
[list:1tmueb70]6548
9982[/list:u:1tmueb70]
2012-12-26T23:43:06Z
[list:1tmueb70]2568
7273[/list:u:1tmueb70]
2012-12-26T23:43:07Z
[list:1tmueb70]9942
6532[/list:u:1tmueb70]

일때

이 두번째 파일에 첫번째의 같은 항목의 내용을 더하는 겁니다.

2012-12-26T23:43:01Z
[list:1tmueb70]148
152[/list:u:1tmueb70]
2012-12-26T23:43:05Z
[list:1tmueb70]6548
9982[/list:u:1tmueb70]
2012-12-26T23:43:06Z
[list:1tmueb70]148
162[/list:u:1tmueb70]
[list:1tmueb70]2568
7273[/list:u:1tmueb70]
2012-12-26T23:43:07Z
[list:1tmueb70]9942
6532[/list:u:1tmueb70]

이런 식으로요.
구글서 검색해 보려고도 해봤지만 마땅한 검색어가 생각이 나질 않아서요. 아무리 찾아도 그저 문자열을 바꾸거나 접두어, 접미어 붙이는 정도만 찾을 수 있더군요.

이렇게 파싱을 할때에는 자료의 규격화가 필요합니다.
님이 예를 드신 첫번째과 두번째는 전혀다릅니다.
왜나면 섹션을 구분하기 우해 첫번째는 빈줄로 감지가 되지만,
두번째는 첫번째 문자가 공백인가로 판단하게 됩니다.

아래코드는 두번째 예에 대한 병합을 하는 코드이고,
빈줄은 삭제 하고, 날짜로 정렬합니다.

[code:8in1ifp5]#!/bin/sh

cat "$@"| tr -s ‘\n’ | awk ’
BEGIN {
section_opened=0
}
{
if (/^\S/) {
section_opened=0
}
if (!section_opened) {
section_opened=1
current_section=$0
if (!list[$0,0]) {
list[$0,0]=$0
section_sizes[$0]=1
section_names[section_count++]=$0
}
} else {
list[current_section,section_sizes[current_section]++]=$0
}
}
END {
asort(section_names)
for (i=0;i<length(section_names);i++)
for (j=0;j<section_sizes[section_names[i]];j++) {
print list[section_names[i],j]
}
}
}’
[/code:8in1ifp5]

sh a.sh 1.txt 2.txt 3.txt