我有一個目錄文件說test.php的,其內容均低於爲什麼我無法檢測到這個文件?
< ? php $XZKsyG=’as’;
我想拿起基於它的內容的搜索文件test.php的。所以從包含它的目錄我做:
grep 'php \$[a-zA-Z]*=.as.;'
但是我得不到結果......我做錯了什麼?
感謝
我有一個目錄文件說test.php的,其內容均低於爲什麼我無法檢測到這個文件?
< ? php $XZKsyG=’as’;
我想拿起基於它的內容的搜索文件test.php的。所以從包含它的目錄我做:
grep 'php \$[a-zA-Z]*=.as.;'
但是我得不到結果......我做錯了什麼?
感謝
這工作對我很好,雖然你可能想看看那些「有趣」單引號你身邊as
:
pax$ cat testfile
< ? php $XZKsyG='as';
pax$ grep 'php \$[a-zA-Z]*=.as.;' testfile
< ? php $XZKsyG='as';
做不到這一點,有一些東西,你可以看看。其中有些可能聽起來很愚蠢,但我真的只是檢查所有基地。
od -xcb file
會給你一個十六進制轉儲它更好地檢查。grep
?也就是說,如果你正在尋找含有該字符串文件的。相反,如果你正在尋找一個名爲這樣的文件,你可以使用類似:
ls -1 | grep 'php \$[a-zA-Z]*=.as.;'
的ls -1
命令給你每行一個文件,管道通過grep
會過濾掉那些不匹配模式。
我想我應該提到,我真的不帶空格的文件名的忠實粉絲,但我猛烈不是文件由PHP腳本的名稱:-)
真的很抱歉,請參閱編輯...我實際上正在嘗試做其他事情... – algorithmicCoder
@algorithmicCoder,請參閱有關如何執行此操作的更新。 – paxdiablo
我實際上正在尋找一個文件,其中包含與該模式相匹配的文本... :( – algorithmicCoder
它適用於我:
$ cat file
< ? php $XZKsyG=’as’;
$ grep 'php \$[a-zA-Z]*=.as.;' file
< ? php $XZKsyG=’as’;
確定該文件的內容與您向我們展示的內容完全相同嗎?
嘗試使用cat -A file
或od -c file
來查看文件是否真的看起來像您認爲的那樣。
(請注意,你不需要逃脫$
字符,但它只是在一行的末尾元字符,但逃脫它應該沒問題。)
編輯:
的文件中as
周圍的字符不是ASCII撇號;它們是Unicode右引號字符(0x2019)。如果文件以UTF-8格式存儲,則每個文件都以3字節序列表示。grep
命令適用於我,因爲我的區域設置"en_US.UTF-8"
使UTF-8字符在正則表達式中與.
相匹配,即使它具有多字節表示形式。我懷疑你的語言環境是這樣的,它會匹配...
。
可能最簡單的解決方案是編輯文件以使用ASCII撇號。
你可能還想玩弄你的語言環境設置。嘗試使用grep
命令,並將$LANG
設置爲"en_US.UTF-8"
。
locale
命令的輸出是什麼?
哎呀!我很抱歉,我試圖搜索目錄一個包含該模式的文件不會搜索該模式的文件...我如何修改該命令? – algorithmicCoder
嘗試類似'grep -l
我不明白澄清:你想匹配的模式與文件名,文件內容,或其他? – wallyk
無論您是在搜索一個文件還是多個文件,您爲什麼沒有找到預期結果相同的答案。所以我建議回到你的問題的原始版本。 (要在目錄中使用'grep -r'pattern'.',並且您可以在[Super User](http://superuser.com)上找到許多其他問題) –