2014-02-14 3 views
0

큰 텍스트 파일 (> 0.5 GB)에서 PER LINE을 검색하고 바꿀 수있는 텍스트 처리 도구가 필요합니다. Windows 또는 Linux 기반 일 수 있습니다. (Linux에서 스트림 리더/라이터와 같은 것이 있는지는 모르겠지만 이상적인 해결책이라고 생각합니다. 편집자는 전체 파일을 모모 리로로드하려고합니다.)거대한 txt 파일 검색 및 바꾸기

보너스 질문 : 라인 단위로 두 개의 거대한 텍스트를 병합 할 수있는 도구, 예 : 탭

답변

1

당신이 원하는 것처럼 들리 네. 예를 들어,

sed 's/foo/bar/' < big-input-file > big-output-file 

big-output-file에 결과를 작성 big-input-file의 각 라인에 의해 bar foo 최초로 출현을 대체한다.

보너스 답변 : 방금 ​​전에 paste에 대해 알았습니다. 귀하의 보너스 질문에서 정확히 원하는 것 같습니다.

1

'sed'는 Linux/Unix에 내장되어 있으며 Windows에서 사용할 수 있습니다. 나는 그것이 단지 (전체 파일이 아닌) 한 번에 버퍼를로드한다고 믿는다 - 당신이 그것을 시도 할 수도있다.

연결하는 것보다 병합 - 인터리브 된 것을 어떤 방법으로 시도하려합니까?

추가 :

use strict; 
use warnings; 

my $B; 

open INA, $ARGV[0]; 
open INB, $ARGV[1]; 

while (<INA>) { 
    print $_; 
    $B = <INB>; 
    print $B; 
} 

close INA; 
close INB; 

실행 interleave.pl : FILEA fileB>이 매우 빈약 유틸리티입니다 mergedFile

주 interleave.pl 펄. 파일이 존재하는지 검사하지 않으며 파일의 행 수가 같을 것으로 예상합니다.

+0

두 개의 단일 언어 자료에서 이중 언어 (병행) 자료를 만들고 싶습니다. –

+0

그러면 "A에서 한 줄, B에서 한 줄, A에서 한 줄, B에서 한 줄 ..."이 될 것입니다. 필자는 그렇게하기 위해 내장 된 것이 없다고 생각하지만, 아래에서 언급했듯이 Perl과 같은 것은 몇 라인만으로도 가능합니다. 그것이 당신이 원하는 것이라면, 우리는 Perl 코드로 그것을 할 수 있습니다. Perl이 설치되어 있는지 확인해야합니다. –

+0

정확히. 어쨌든이 PERL을 배워야 할 것입니다. thanks –

0

나는 이것을 위해 perl을 사용할 것이다. 파일을 한 줄씩 읽기가 쉽고 정규 표현식을 사용하여 훌륭한 검색/repace를 사용할 수 있으며 병합 할 수 있으며 perl 스크립트에서 두 파일을 모두 인식 할 수 있습니다.

+0

고마워, 나는 언젠가는 PERL을 배울 것이다. 그러나 지금은 그렇지 않다. :) –

+0

그것은 내가 배운 첫 번째 언어이고 모든 것에 대한 나의 대답이다.) – user1717259

+0

필자는 필자에게 필자가 작성해야하는 일기 예보 모델을 가지고있다. 당신은 Perl에서 그것을하고 FORTRAN에서 그것을 할 것이고, 우리는 성능을 비교할 것입니다. Perl은 많은 일을 멋지게 할 수 있지만, 모든 것이 최선이 아닙니다. –