Рубин:как сопоставить двойные кавычки в регулярном выражении

StackOverflow https://stackoverflow.com/questions/1520170

  •  19-09-2019
  •  | 
  •  

Вопрос

Я пытаюсь удалить некоторые символы двойных кавычек (") из текстового файла, используя Ruby one liner, но без особого успеха.

Я пробовал следующее и некоторые вариации, но безуспешно.

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

Это выдает мне следующую ошибку:

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

Я запускаю Ruby на компьютере Win:

ruby 1.8.6 (2007-09-24, уровень исправления 111) [i386-mswin32]

Есть какие-нибудь идеи?

Это было полезно?

Решение

Похоже, что cmd цитирует hell - обратите внимание, что одинарные кавычки не имеют смысла в командной оболочке.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top