[英]Ruby: how to match a double quote in a regexp
我試圖使用Ruby one襯里從文本文件中刪除一些雙引號(“)字符,但收效甚微。
我嘗試了以下內容和一些變體,但均未成功。
ruby -pe 'gsub(/\"/,"")' < myfile.txt
這給了我以下錯誤:
-e:1: Invalid argument - < (Errno::EINVAL)
我在Win機器上運行Ruby:
紅寶石1.8.6(2007-09-24補丁程序級別111)[i386-mswin32]
任何想法?
看起來像cmd引用地獄-請注意,在cmd shell中單引號是沒有意義的。
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 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.