الأمر آر يسبب مشاكل في سيغوين باش.إكس شل, لكنه يعمل في مينتي.إكس
سؤال
يمكنني استخدام ويندوز مع سيغوين.يجب أن يخرج الأمر التالي عدد تكرارات ' / 'في السلسلة"./ بوتسترب3.سيارة أجرة".وهو يعمل عند استخدام مينتي.إكس شل والمخرجات "1":
echo ./bootstrp3.cab | tr -cd / | wc -c
للأسف فإنه يخرج الرسالة التالية مع باش.إكس شل
Usage:
tr [-cs] string1 string2
tr -s[-c] string1
tr -d[-c] string1
tr -ds[-c] string1 string2
ويبدو أن القذيفتين تتصرف بشكل مختلف ، ولكن كلاهما يبدو أن نفس النوع من قذيفة ، لأنه عندما كنت echo $0
, ، باش.مخرجات إكس bash
و مينتي.مخرجات إكس -bash
.
حاولت أيضا الأمر مع قذيفة بورن (ش.إكس) ، لكنه يخرج نفس الرسالة كما هو الحال مع باش.إكس شل.
لا أحد يعرف كيف يمكنني الحصول على الأمر العمل مع ش.إكس أو باش.إكس شل?وهل يعرف أحدهم لماذا تتصرف قذيفتا باش بشكل مختلف?
المحلول
يمكنك أن تفعل الشيء نفسه باستخدام sed
و wc
:
echo -n ./bootstrp3.cab | sed 's![^/]!!g' | wc -c
لا تنتمي إلى StackOverflow