grep sed awk 三剑客

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

3. awk命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值