当前位置: 代码迷 >> CVS/SVN >> 【转】grep 搜寻时忽略 .svn目录 & Linux去掉文本中的~M
  详细解决方案

【转】grep 搜寻时忽略 .svn目录 & Linux去掉文本中的~M

热度:3403   发布时间:2013-02-26 00:00:00.0
【转】grep 搜索时忽略 .svn目录 & Linux去掉文本中的~M
源地址:http://stefan321.iteye.com/blog/1647976



如果是用svn管理的代码,每个文件夹下都有一个.svn的隐藏文件夹,包含对代码版本的控制信息,日积月累会越来越庞大。所有如果只是默认搜索的话,很多搜索结果都是svn目录下的,对我们来说,是没有价值的内容;而且还会耗费很多时间。

grep的--exclude-dir=参数就是为了排除某个目录的,即不包含等号后面的目录,所以我们可以利用此参数去掉.svn的隐藏目录。

--exclude-dir=参数的用法如下:


If you have GNU Grep, it should work like this: 
grep --exclude-dir=".svn" 
例如:查找当前目录以及子目录下所有包含"test"字符串的代码并打印行号 
 
grep -nr --exclude-dir=".svn" test * 
 
或者 
 
grep -nr --exclude-dir=\.svn test * 
--exclude-dir=后面要排除的目录用双引号括起来或者直接接目录名都可以,但是特殊字符必须用转义符表示,例如".svn"中的"."。 



如果每次都输入--exclude-dir=参数,是不是很慢还容易出错,降低效率呢?

不过不用担心,我们可以把--exclude-dir=参数通过加入配置文件 ~/.bashrc (这是bash的当前用户配置文件) 的方法来简化操作,提高效率。

在~/.bashrc文件的末尾添加以下命令:

export GREP_OPTIONS="--exclude-dir=\.svn"   

然后保存,执行source ~/.bashrc或者. ~/.bashrc,使修改起作用。


















--------------------------------------------------------------
转自:
http://aoingl.iteye.com/blog/1569663






相信很多人都遇到过将 Windows 或者 Mac OS下的文本文件传输到 Linux 后出现烦人的 ^M 现象, 这是因为Windows,Mac OS, Linux 使用不同的换行符造成的。 Windows 下使用 '\r\n', Mac OS 下使用 '\r',而 Linux 下使用 '\n'。进行适当的转换就可以去掉这烦人的 ^M 符号。

如果你从一台 FTP Server (Windows) 下 download 一个文本文件, 而没有使用 text 传输,就会产生这个问题。

进行转换的工具是 dos2unix 和 mac2unix。该工具由 dos2unix 包提供, 如果你的机器下没有这两个工具,请使用:


Java代码 
[lgao@lgao data]$ sudo yum install dos2unix 


进行安装。

假设需要进行转换的文本文件叫: text.txt, 那么请使用指令:

Java代码 
[lgao@lgao data]$ dos2unix text.txt  
dos2unix: converting file text.txt to Unix format ... 
[lgao@lgao data]$ mac2unix text.txt  
mac2unix: converting file text.txt to Unix format ... 

进行相应的转换。