1. grep -A 意思是after,后面可加数字,表示列出该行外,后续的n行也列出来
-B 意思是before,后面可加数字,表示列出该行外,前面的n行也列出来
1) 查找特定字符串: grep -n 'the' test 找出test文件中‘the’字符串所有的行并列出行号
2) 反向查找特定字符串:grep -vn 'the' test 找出test文件中没有‘the’字符串所有的行并列出行号
3) 忽略大小写: -i
4) []选取: grep 't[ae]st' test 查找tast或者test,[]中只有一个字符,即a或者e
5) 反向选择:grep '[^g]oo' test 查找有oo且oo前面没有g的字符串
6) 连续选择: grep '[0-9]' test grep '[[:digit:]]' test 查找一个数字
7) 行首与行尾:^ $ grep '^the' test 查找行首是the
grep 'the¥' test 查找行尾是the
grep '^$' test 查找空白行
8) 任意字符 . : grep 'g..d' test .代表一定有一个字符
9) 多个字符 *:grep 'go*' test 代表查找g后面有0到无穷多个o的字符
10)限定连续字符{}: grep 'o\{2\}' test 表示查找2个或者以上o的字符串
grep 'o\{2,5\}' test 查找2到5个o的字符串
2. sed 工具:
-n 使用安静模式,表示只有经过sed特殊处理的那一行(或者操作)才会被列出来
-e 直接在命令行模式上进行sed的动作编辑
-f 直接将sed的动作写在一个文件内 -f filename 则可以执行filename内的sed动作
-i 直接修改读取的文件内容,而不是由屏幕输出
function有以下参数:
a 新增,a后面可接字符串,出现在新的一行(目前的下一行)
c 替换,c后面可接字符串,这些字符串可以替换n1,n2之间的行
d 删除,因为是删除,所以d的后面不接任何参数
i 插入,i后面可接字符串,出现在新的一行(目前的上一行)
p 打印,将某个选择的数据打印出来
s 替换,例如 1,20s/old/new/g就是
1) cat test | sed '2,5d' 表示 2到5行不打印出来(即删除)
2) cat test | sed '2a drink tea' 表示是第二行后面加一行"drink tea"
3) cat test | sed '2,5c NEW' 表示将第2到5行替换成"NEW"
4) cat test | sed -n '5,7p' 表示即输出5到7行并,-n表示安静模式,如果不加则5到7行会重复显示一次
5) sed 's/old/new/g' 替换
6) -i 直接修改文件内容
3. 扩展正则表达式