2009-10-05 3 views
2

에 따옴표를 일치하는 방법을루비 :. 나는 작은 성공, 루비 하나의 라이너를 사용하여 텍스트 파일에서 몇 가지 큰 따옴표 (") 문자를 제거하려고 오전 정규 표현식

나는 다음을 시도

, 성공없이 약간의 변화,

ruby -pe 'gsub(/\"/,"")' < myfile.txt 

이 나에게 다음과 같은 오류 제공합니다. 나는 승리 시스템에 루비를 실행하고

-e:1: Invalid argument - < (Errno::EINVAL) 

을 :

루비 1.8.6 (2007-09-24 패치 레벨 111) I386-MSWIN32]

짐작?

+0

더 많은 데이터를 필요 : 당신이 cmd를 쉘을 사용하고 있습니까? –

답변

5

cmd quoting hell - cmd 셸에서 작은 따옴표는 의미가 없습니다.

ruby -pe "gsub(34.chr,'')" < filename 

그러나 이것은 아마도 더 :

ruby -pe "$_.delete!(34.chr)" < filename 
+0

둘 다 작동합니다. 감사! –

+0

이 작품! 수락 받아야합니까? – Jirapong

+0

나를 보여 주려고 +1하는 '34.chr' – cbmeeks

1

에 대한 방법 : 문제는 쉘처럼

ruby -e 'puts $stdin.read.gsub(34.chr,"")' <myfile.txt 
+0

같은 오류가 발생했습니다. –

+0

백 슬래시와 cmd.exe가 제대로 작동하지 않는 경우가 있습니다. –

+0

새 예제는 아마도 ASCII 파일에서만 작동합니다. –

0
ruby -pe 'gsub(/\"/,"")' myfile.txt 
+0

이것은 작동하지 않습니다. 입력을 스크립트로 리디렉션하려면 "<"가 필요합니다. –

+0

죄송하지만 미안하지만 "입력을 스크립트로 리디렉션"하지 못했습니다. – khelll

+0

내 말은 입력이 파일에서오고 "<"기호가 스크립트에 해당 파일을 제공하는 데 사용된다는 것입니다. 어쩌면 이러한 예제가 더 잘 설명 할 수 있습니다. http://www.fepus.net/ruby1line.txt –

0

는 소리.

오류 메시지가 Ruby에서 왔기 때문에 Ruby가 <을 인수로받는 것 같습니다. 이것은 쉘이 리디렉션을 수행하지 않는다는 것을 의미합니다.

저는 편리한 Windows 컴퓨터가 없으므로 리디렉션이 먼저 올바르게 수행되는지 확인합니다. 첫 번째 검사에서는 < myfile.txt<myfile.txt이어야한다고 생각합니다.

+0

이것은 원인이 아닌 것 같습니다. 특수 문자가 아닌 경우 제대로 작동합니다. –

관련 문제