يضيف إعادة توجيه الإخراج القياسي إلى ملف جديد حرفا غريبا إلى نهاية اسم الملف في Cygwin

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

  •  18-09-2019
  •  | 
  •  

سؤال

أواجه مشكلة في برنامج نصي شل في Cygwin. الأمر المحدد الذي يسبب المشكلة هو:

sed -e "s/6.0.[0123456789]\{1,\}/6.0.${REV}/g" "path/to/file/config.xml" > "path/to/file/config.xml.tmp"

المشكلة هي أن الملف يتم إنشاؤه بحرف غريب في النهاية، لذلك بدلا من تسجيل config.xml.tmp، فإنه اسمه "config.xml.tmp". من الأمر "LS" ومن موجه أوامر Windows، يبدو وكأنه "config.xml.tmp؟"

إذا قمت بتشغيل الأمر SED فقط من Shell، فإن الملف المسمى بشكل صحيح، والبرنامج النصي يعمل بشكل جيد في Linux.

أي فكرة عما يمكن أن يكون الخطأ؟ شكرا!

هل كانت مفيدة؟

المحلول

تخميني هو أن ملف البرنامج النصي الخاص بك لا يحتوي على نهايات خط UNIX. ال \r الحرف في خط Windows ينتهي هو ما يضافه إلى نهاية اسم الملف الخاص بك. يمكنك التحقق مع od أو hexdump لمعرفة ما إذا كانت هذه هي المشكلة.

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