簡體   English   中英

Ruby:如何在正則表達式中匹配雙引號

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM