سؤال

أحاول إزالة بعض الأحرف ذات الاقتباسات المزدوجة (") من ملف نصي باستخدام بطانة روبي واحدة، مع النجاح القليل.

لقد جربت ما يلي، وبعض الاختلافات، دون نجاح.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top