Linux下grep命令的详解,cut,sed

1、grep能够接受正则表达式和通配符。

grep match_pattern filename

一个grep命令可以对多个文件进行搜索:grep "match_object" file1 file2 file3

用 - - color 选项可以在输出行中重点标记出匹配到的单词:grep word file - -color=auto

grep 通常将match_pattern视为通配符。如果使用正则表达式,需要添加-E选项,这意味着使用扩展正则表达式,也可以使用默认允许正则表达式的grep命令-----egrep。

grep -E "[a-z]+"  等价于 egrep "[a-z]+"


为了只输出文件中匹配到的文本部分,可以使用选项:-o

echo this is a line. | grep -o -E "[a-z]+\."

要想打印除包含match_pattern的行之外的所有行,可以使用:-v。 选项-v可以将匹配到的结果进行反转。

grep -v match_pattern file


1、递归搜索文件呢

如果需要在多级目录中对文件进行递归搜索,可以使用: grep “text”  .  -R -n;命令中的,指定了当前目录。

2、忽略样式中的大小写

选项-i可以使匹配样式不考虑字符的大小写,例如:

echo hello world | grep -i "HELLO"

3、用grep匹配多个样式

可以树勇选项-e来制定多个匹配样式。

grep -e "pattern1" -e "pattern2"


为了指明输入的文件名是以0值字节(\0)作为终止符,我们应该在xargs中使用-0.

grep “test” file* -lZ  | xargs -0 rm   



同cut按列切分文件

cut -d ";" -f 2,3 filename  -d用来指定字段的定界符。

cut命令有一些选项可以将一串字符作为列来显示。

-b表示字节;-c表示字符;-f表示定义字段。



sed命令主要是进行文本替换的。sed可以替换给定文件中的字符串,。他可以利用正则表达式进行匹配。

sed 's/pattern/replace_string/'  file   或者  cat file | sed ‘s/pattern/repace_string/’ file

使用-i选项,可以将替换结果应用于原文件。

sed  -i  's/pattern/replace_string/'  file 


如果需要替换所有内容,我们需要在命令尾部加上参数g。其方法如下:

sed 's/pattern/replace_string/g'  file   后缀g意味着sed会替换每一处匹配。


sed移除空白行,空白和可以用正则表达式^$匹配。

sed '/^$/d' file 

猜你喜欢

转载自blog.csdn.net/wangyangkobe/article/details/8531654