\ h grep için özel bir kaçış değil, bu yüzden '\ h' yaptığı bir dosyada \ h bulmalı.
Kabuk, ilkini \ grep görmeden önce \ özel olduğundan kaldırır (tür ls \\
ve diyor ki: s:: Yani böyle bir dosya veya dizin). Bir dosyadaki "\ h" ile eşleşmesi için, ilkini önlemek için grep \ h veya '\ h' kullanın \ - & gt; \ kabuk tarafından azaltma.
Şimdi \ $: \ kabuk tarafından \ 'a indirgenir ve grep \ $' ı görür ve $ regex'lerde (+,., * Vb. Gibi) özel olduğundan, \ $ basit bir sınama dosyası göstereceği gibi gerçek bir dolar işaretidir. sen. Re_format (7) için kılavuz sayfasına bakınız. Yani bu tüm satırları dolar işareti ile eşleştirir.
Bu nedenle, bir dosyadaki "\ $" değişmezini eşleştirmek istiyorsanız, şunu düşünmemiz gerekir: \ $ değişmezce $, ve \ to: try ls \\\$' and you get "ls: \$: No such file or directory". So in
grep \\ $ dosya , grep sees \$ and interprets that as $ again... So we want grep to see \\\$ (which it will unescape again to \$), so we can put single quotes around that and avoid headaches, or escape all the special characters for the shell too:
grep \\\ $ $ `. Bu çalışıyor.
Bu yüzden neredeyse her zaman ilk grep argümanının etrafına tek bir alıntı koydum, bu yüzden sadece grep'in ne yapacağını düşünmek zorundayım, kabuk hakkında da değil.