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