루비 : Regexp에서 이중 견적을 일치시키는 방법
문제
루비 원 라이너를 사용하여 텍스트 파일에서 이중 인용문 ( ") 문자를 제거하려고합니다.
나는 성공하지 않고 다음과 같은 변형을 시도했습니다.
ruby -pe 'gsub(/\"/,"")' < myfile.txt
이것은 다음과 같은 오류를줍니다.
-e:1: Invalid argument - < (Errno::EINVAL)
나는 Win Machine에서 Ruby를 실행하고 있습니다.
Ruby 1.8.6 (2007-09-24 Patchlevel 111) [i386-mswin32
아이디어가 있습니까?
해결책
CMD 인용 지옥처럼 보입니다. 단일 따옴표는 CMD 쉘에서 의미가 없습니다.
ruby -pe "gsub(34.chr,'')" < filename
그러나 이것은 아마도 더 나을 것입니다 :
ruby -pe "$_.delete!(34.chr)" < filename
다른 팁
어때요 :
ruby -e 'puts $stdin.read.gsub(34.chr,"")' <myfile.txt
ruby -pe 'gsub(/\"/,"")' myfile.txt
문제는 쉘에 문제가있는 것 같습니다.
귀하의 오류 메시지는 Ruby의 것이므로 Ruby가 <
논쟁으로. 이것은 쉘이 리디렉션을 수행하지 않음을 의미합니다.
Windows 기계가 편리하지 않으므로 먼저 리디렉션을 올바르게 받고 있는지 확인합니다. 첫 번째 검사에서 나는 생각합니다 < myfile.txt
해야한다 <myfile.txt
제휴하지 않습니다 StackOverflow