$Id$
ฉันต้องการที่จะทราบว่ามีไฟล์สตริง
grep \$Id\$ my_dir/mylist_of_files
ส่งกลับค่าที่เกิดขึ้น 0
ฉันค้นพบว่าฉันต้องใช้
grep \$Id$ my_dir/mylist_of_files
จากนั้นฉันจะเห็นว่า$Id
มีสีในเอาต์พุตนั่นคือมันถูกจับคู่
ฉันจะจับคู่ที่สองได้อย่างไร$
และทำไมไม่\$Id\$
ทำงาน
ไม่สำคัญว่าตัวที่สอง$
จะเป็นตัวละครตัวสุดท้ายหรือไม่
ฉันใช้grep
2.9
ก่อนโพสต์คำถามของฉันฉันใช้ google ...
หากต้องการค้นหา $ (เครื่องหมายดอลลาร์) ในไฟล์ชื่อ test2 ให้ป้อน:
grep \\ $ test2
จำเป็นต้องใช้อักขระ \\ (double backslash) เพื่อบังคับให้เชลล์ส่ง a \ $ (เครื่องหมายแบ็กสแลชเดี่ยว, เครื่องหมายดอลลาร์) ไปยังคำสั่ง grep อักขระ \ (แบ็กสแลชเดี่ยว) บอกให้คำสั่ง grep ปฏิบัติต่ออักขระต่อไปนี้ (ในตัวอย่างนี้ $) เป็นตัวอักษรมากกว่าอักขระนิพจน์ ใช้คำสั่ง fgrep เพื่อหลีกเลี่ยงความจำเป็นในการใช้อักขระเลี่ยงเช่นแบ็กสแลช
แต่ฉันไม่เข้าใจว่าgrep \$Id
ทำไมgrep \\$Id\\$
มันถึงได้ผล
ฉันสับสนเล็กน้อย ...
grep -F '$Id$'
ในฐานะการแสดงออกปกติคุณยังสามารถทำ