سطر الأوامر GREP للحصول على سلسلة مع "$" في ذلك؟
-
12-09-2019 - |
سؤال
أحاول أن أجد حيث يتم ربط المتغيرين في دليل من البرامج النصية، ولكن عندما أحاول ما يلي:
grep -lire "$DATA_PATH . $AWARDS_YEAR" *
أحصل على أخطاء "غير محددة متغير" ...
اعتقدت أنني أستطيع الهروب من $ S باستخدام:
grep -lire "\$DATA_PATH . \$AWARDS_YEAR" *
لكنني أحصل على نفس الخطأ - هكذا، كيف يمكنك GREP من أجل السلاسل ب $؟
المحلول
TCSH مختلفة قليلا عن المتغيرات من القذائف المعتادة، وهو الافتراضي على FreeBSD.
لذلك، فقط استخدم اقتباسات واحدة، '$VAR'
, أو الهروب من $
خارج الاقتباسات: \$"VAR"
نصائح أخرى
ضعها في علامات اقتباس واحدة، مع مائل الهروب:
grep -lire '\$DATA_PATH . \$AWARDS_YEAR' *
لاحظ أيضا، أن النقطة (.) هي حرف Regex. إذا كنت لا تريد أن تكون، فالهربها، أيضا (أو لا تستخدم الخيار -e).
هنا مرجع جميل مع مزيد من المعلومات العامة.
لا تنتمي إلى StackOverflow