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