Grep 为什么';格雷普能给我一条匹配的线吗?
我刚刚注意到Grep 为什么';格雷普能给我一条匹配的线吗?,grep,Grep,我刚刚注意到 grep -rni 'a2}' * 不为所有具有字符串a2}的文档提供匹配行。为什么会这样 我试图创建一个最小的示例,但是当我创建一个新文件并粘贴内容时,它失败了。所以我把文件上传到了一个网站上。也许这是一个编码问题 该文件的内容是: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{KV-Diagramme} \label{chap:a2} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
grep -rni 'a2}' *
不为所有具有字符串a2}
的文档提供匹配行。为什么会这样
我试图创建一个最小的示例,但是当我创建一个新文件并粘贴内容时,它失败了。所以我把文件上传到了一个网站上。也许这是一个编码问题
该文件的内容是:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{KV-Diagramme}
\label{chap:a2}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\PsTexAbbildungOhneCaption{figures/a2-1}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "skript"
%%% End:
grep-rni'a2}'*
的结果是
moose@pc08 ~/Downloads/algorithms/grep $ grep -rni "a2}" *
%%% End:master: "skript"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
但我预料
moose@pc08 ~/Downloads/algorithms/grep $ grep -rni "a2}" *
\label{chap:a2}
为什么会得到这个结果?该文件具有CR行终止符,因此看起来是一个单行文件:
#> file anhang-2.tex
anhang-2.tex: LaTeX document, ASCII text, with CR line terminators
将其转换为Linux格式:
#> mac2unix anhang-2.tex
mac2unix: converting file anhang-2.tex to Unix format ...
#> grep -rni 'a2}' anhang-2.tex
3:\label{chap:a2}
这是因为您的文件使用Mac OS 9行结尾。您需要首先转换为UNIX行结尾。如何执行此操作取决于您的场景,但您可以使用以下内容执行一个文件:
tr '\r' '\n' < anhang-2.tex > anhang-2.txt
tr'\r'\n'anhang-2.txt
然后,您将能够对新文件进行grep处理。我得到以下输出:
tmp.txt:3:\label{chap:a2}
这很奇怪:我得到了您期望的结果。我也是。。。与预期的结果相同如果文件夹中的所有.tex
文件都有CR行终止符,我如何检查它们?请尝试此@moose,file*tex | grep CR
@perreal您对行终止的看法是正确的。我只是做了个简单的假设。编辑答案。谢谢