我有这个特殊字符的特殊文件:
ApplicationContext
当我通过
^S^H^B^R^MLong is here
^X^M
搜索它时,它会给我以下结果,而不会显示其文件路径:
grep -r "Long is here" .
但是,如果删除Long is here
,文件路径将显示:
^S^H^B^R^M
我正在使用OSX。
这里发生了什么?
编辑:
我尝试使用BSD grep(./CIQla:Long is here
)作为GNU grep(grep 2.5.1-FreeBSD
)
答案 0 :(得分:3)
^ M是一个回车符,它使终端返回到行的开头。基本上,它打印" ./ CIQla:",然后是几个非打印字符,然后^ M将它发送到行的开头,然后打印" Long就在这里" over " ./ CIQla:"。
如果您希望能够在输出中看到文件名,则需要通过将^ M(可能还有其他非打印字符)变为可打印的内容来管理结果。试试这些:
grep -r "Long is here" . | cat -v
grep -r "Long is here" . | more