Ruby: كيفية تطابق اقتباس مزدوج في Regexp
سؤال
أحاول إزالة بعض الأحرف ذات الاقتباسات المزدوجة (") من ملف نصي باستخدام بطانة روبي واحدة، مع النجاح القليل.
لقد جربت ما يلي، وبعض الاختلافات، دون نجاح.
ruby -pe 'gsub(/\"/,"")' < myfile.txt
هذا يعطيني الخطأ التالي:
-e:1: Invalid argument - < (Errno::EINVAL)
أنا أعاني روبي على آلة فوز:
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
يبدو أن المشكلة مع قذيفة.
رسالة الخطأ الخاصة بك هي من روبي، لذلك يبدو أن روبي يتلقى <
كحجة. هذا يعني أن قذيفة لا تفعل أي إعادة توجيه.
ليس لدي جهاز ويندوز مفيد حتى أتحقق من إعادة توجيه إعادة التوجيه أولا. على التفتيش الأول أعتقد < myfile.txt
يجب ان يكون <myfile.txt
لا تنتمي إلى StackOverflow