sed与grep

sed

sed不同于vi,vim这两种文本编辑工具,sed是一个流编辑工具,也叫行编辑工具。

s 搜索暂换 (推荐!)

g 全局暂换

p 只输出被暂换的信息,配合-n使用

w 保存 (推荐!)

sed 's#\/sbin\/nologin#\/bin\/bash#g' /etc/passwd 把passwd里的/sbin/nologin全部换成/bin/bash

sed 's#\/sbin\/nologin#\/bin\/bash#gp' /etc/passwd 同上暂换效果,但只输出被暂换的行

sed 's#\/sbin\/nologin#\/bin\/bash#gw /root/pass' /etc/passwd 全部输出并保存到/root/pass,可以理解为另存为

d 删除匹配指令的行

举例

sed '/^#/d ; /^$/d' /etc/passwd 不显示注释行和空行

sed '/^$/d' /etc/passwd 删除空白行

sed '1d';'2d' /etc/passwd 删除1,2行

-n 关闭sed的默认输出,也就是指定输出行

举例

sed '10,15p' /etc/passwd 输出passwd 10到15行输出两遍

sed -n "10p";"11p" /etc/passwd 输出第10,11行

sed -n '/^#/p' /etc/fstab 输出非注释行

范围匹配:

举例

sed -n '1,5p' /etc/passwd 输出1~5行

sed -n '1,$p' /etc/passwd 输出1~最后一行

sed -n '/root/p' /etc/passwd 输出包含root的行

sed -n '3,/^m/p' /etc/passwd 输出第3行到m开头的行

i 插入操作 在行前,另起一行

举例

sed '1i#' /etc/passwd 在第一行上插入#

sed '/root/i#' /etc/passwd 在文件中root开头的行上插入#

a 插入操作 在行后,另起一行

举例

sed '1a#' /etc/passwd 在第一行下插入#

w 写入(覆盖)文件

举例

sed -n '/nologin$/w /root/f1' /etc/passwd

把passwd中以nologin结尾的行写入到/root/f1文件中

r 读入(追加)文件

举例

sed '/^root/r /root/f1' /etc/passwd 把/root/f1文件内容读入到/etc/passwd文件以root开头的行

sed 'r /root/f1' passwd 把/root/f1文件内容读入到/etc/passwd文件每一行后面

c 暂换 行

举例

sed "1c\hallo,word" /etc/passwd 把第四行信息替换为“hallo,word” sed -r

"/^root/c\hallo,word" 把正则匹配到的行暂换为“hallo,word”

grep

-V 反选

举例: grep -V root /etc/passwd 列出不包括root的行

-n 显示行号

-e 多个条件 比如:grep -e 'root' -e 'test' /etc/passwd

-o 仅显示匹配的字符

-w 显示匹配的单词

-i 忽略大小写搜索单词

-c 统计匹配信息的次数

-E;egrep 扩展正则

-A 输出匹配的信息和之后?行的信息

-B 输出匹配的信息和之前?行的信息

-C 输出匹配的信息和前后各?行的信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值