1. grep命令
grep
的作用是打印匹配正则表达式的行(过滤),egrep
可以匹配拓展的正则表达式。格式为:
grep [options] patterns [file...]
1.1 常见选项
-E
: 等价于egrep
,支持拓展正则-num
: 打印包括匹配行前后num行-A
:-A5
打印包括匹配行后5行 (after)-B
:-B5
打印包括匹配行前5行 (before)-i
: 忽略大小写-v
: 选择不匹配的行-w
: 精确匹配--color
: 匹配的字符串标记颜色
1.2 常见用法
- 查询命令的指定选项的作用:
$ curl -help | grep \\-L
-L, --location Follow redirects
- 查询某个指定的程序:
$ ps -ef | grep nginx | grep -v grep
上面命令中grep -v grep
是用于排除grep程序自身,从而获取真正要查询的程序。
2. sed命令
sed 指的是 stream editor(流编辑器),把内容按行不断传入内存进行处理,直到末尾。命令格式:
sed [options] 'commands' [input-file]
2.1 常用选项
-n
: 不打印处理后文件的数据 (–quiet, --silent),-i
: 就地编辑文件 (in place)
2.2 常见用法
2.2.1 查找 p
p → \rightarrow → print
'2p'
: 查找指定行'1,5p'
: 指定行号范围进行查找'/regex/p'
: 查找匹配正则表达式的行'/10:00/,/11:00/p'
: 表示范围的过滤查找
举例说明:
# 查找匹配行当前行和下一行
sed -n '/dfs.namenode.name.dir/,+1p}' hdfs-site.xml
# 查找匹配行的下一行
sed -n '/dfs.namenode.name.dir/{n;p}' hdfs-site.xml
# 打印匹配行的下一行到文件末尾
sed '1,/dfs.namenode.name.dir/ d' hdfs-site.xml
2.2.2 增加 cai
c
→
\rightarrow
→ replace
a
→
\rightarrow
→ append
i
→
\rightarrow
→ insert
'3a hello'
: 在第3行后面添加内容为 hello 的新行'/regex/i hello'
: 在匹配正则表达式的行前面插入内容为 hello 的新行
2.2.3 替换 s
s → \rightarrow → substitute
's/src/dst/g'
: 将匹配src的字符串替换为dst字符串
sed -n 's/hello/hi/g p' text.txt