استخراج النص من اسم المضيف
سؤال
وعن طريق OS X، ولست بحاجة السيناريو باش سطر واحد للنظر في لجنة الهدنة العسكرية المضيف العميل مثل: 12345-BA-مرحلة ما قبل المدرسة، LT.local
وأين الأرقام 5 الأولى هي الرقم التسلسلي الأصول، والواصلات فصل رمز وحدة الأعمال التجارية من اسم قسم تليها شيء من هذا القبيل "LT" للدلالة على جهاز كمبيوتر محمول.
وأعتقد أنني في حاجة إلى ترديد اسم المضيف واستخدام مزيج من الحوار الاقتصادي الاستراتيجي، AWK وربما قطع لتجريد الشخصيات من أن يتركني مع:
"BA مرحلة ما قبل المدرسة"
وأي مساعدة بتقدير كبير. هذا ما لدي حتى الآن:
echo $HOSTNAME | sed 's/...\(...\)//' | sed 's/.local//'
المحلول
echo "12345-BA-PreSchool-LT.local" | cut -d'-' -f2,3 | sed -e 's/-/ /g'
و(ليس على OSX، لذلك لست متأكدا إذا تم تعريف قطع)
نصائح أخرى
وأود أن تبقي الأمور بسيطة:)
ويمكنك أن تفعل ذلك مع قطع فقط:
echo 12345-BA-PreSchool-LT.local | cut -d"-" -f2,3
BA-PreSchool
إذا كنت ترغب في إزالة الواصلة يمكنك استخدام آر
echo 12345-BA-PreSchool-LT.local | cut -d"-" -f2,3 | tr "-" " "
BA PreSchool
وماذا عن
echo $HOSTNAME | awk 'BEGIN { FS = "-" } ; { print $2, $3 }'
وAWK يمكن حل المسألة بسهولة.
echo "12345-BA-PreSchool-LT.local" | awk -F'-' '$0=$2" "$3'
BA PreSchool
bash$ string="12345-BA-PreSchool-LT.local"
bash$ IFS="-"
bash$ set -- $string
bash$ echo $2-$3
BA-PreSchool
لا تنتمي إلى StackOverflow