سطر الأوامر GREP للحصول على سلسلة مع "$" في ذلك؟

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

  •  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).

هنا مرجع جميل مع مزيد من المعلومات العامة.

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