2013-01-16 3 views
-1

한 파일에서 특정 코드 행을 복사하여 다른 파일에 삽입하는 Ruby 스크립트를 작성하고 싶습니다. 가능한 한 결과를 file_1의 일부 줄을 강조 표시하고 복사 한 다음 file_2의 중간에 커서를 놓고 복사 한 코드를 붙여 넣은 것과 같은 결과를 얻고 싶습니다 (즉, 아래에있는 file_2의 코드 삽입 점이 아래로 이동합니다 ...).줄 번호로 파일의 일부를 검색하고 바꿉니다

필자는 이전에 파일의 전체 내용을 가져 와서 빈 파일에 삽입하는 스크립트를 작성했지만 한 파일의 특정 줄만 "복사하여 붙여 넣기"를 원합니다 파일. 줄 번호로 파일을 검색 할 수 있습니까? 내 전반적인 목표가 가능합니까? 미리 감사드립니다.

+0

데스크톱 응용 프로그램을 의미합니까? – tadman

+0

어떤 종류의 인터페이스가 예상되는지는 분명하지 않습니다. 방법인가요? 아니면 독립 실행 형 응용 프로그램입니까? 당신이 묘사 한 바에 따르면,이 스크립트는 텍스트 편집기에 추가되어야한다고 생각합니다. 따라서 Ruby보다는 emacs를 사용하고 있다면 e-lisp과 같이 써야합니다. – sawa

답변

0

전체 파일을 메모리에 보관할 수 있다면 each_with_index를 사용해보십시오. 스크립트는 매우 간단합니다.

IO.readlines("/etc/passwd").each_with_index do |line, line_num| 
    if (line_num % 6 == 2) 
    puts line 
    end 
end 
그런 다음 새 파일로 재 지정하거나 새를 열고 방금 그도를 통해 걸을 수 행 번호의 목록이있는 경우

opened_file.puts line 

를 사용하여 해당 쓸 수 있습니다

:

lines = IO.readlines(file) 
line_numbers.each do |i| 
    puts lines[i] 
end 
+0

글쎄, 어떤 사람들은 내 질문을 이해하지 못했지만, 당신은 폴을 가지고있는 것처럼 보입니다 ... 이것은 내가 찾고있는 것입니다 ... 감사합니다! – Brownie

0

그냥 배열로 텍스트를 설정하는 분할 기능을 사용하여 번호별로 라인 또는 범위를 선택할 수 있습니다

arraytext = filetext.Split("\n") 
arraytext[0] #for first line 
관련 문제