sed和awk命令的基本操作

sed指令

基本参数

替换:s/old/new/
删除:d
插入:i
追加:a
打印匹配行:p
修改文件:-i
行号操作:N
sed -i ‘1d’ 1.txt 删除1.txt文件第一行内容
sed -i ‘4,7d’ 1.txt 删除1.txt文件的第4-7行内容
sed -r ‘2,$d’ 1.txt 删除1.txt文件中从第2行-最后的所有内容

sed -ri ‘1~2d’ /etc/passwd //删除所有奇数行 odd-numbered

sed -r ‘0~2d’ /etc/passwd //删除所有偶数行 even-numbered

r参数不会修改内容,i 直接修改内容

删除配置文件中的空行

sed -r ‘/1*$/d’ 1.txt

删除注释行及空行:

sed -i ‘/^#/d’ 1.txt 删除注释行
sed -i ‘/^$/d’ 1.txt 删除空行
sed -i ‘s/^#//’ filename 删除行首的#

sed -i ‘2,6s/^/#/’ 1.txt

{意为在1.txt文件中给第二行和第六行前添加#}
sed -i ‘s/^/#/’ 1.txt
{意为给全文行首添加#}

sed -i ‘4a\nihao’ 1.txt

a插入 数字:在第几行后
意为在1.txt文件的第四行后面添加nihao

1.搜索每一行匹配到MA的将第一个替换为Massachusetts:

[root@localhost ~]# sed -i ‘s/MA/Massachusetts/’ test.txt
s:----查找

2.搜索每一行,找到所有的MA字符,进行全局替换为Massachusetts

[root@localhost ~]# sed -i ‘s/MA/Massachusetts/g’ test.txt

3.搜索每一行,找到所有的MA字符,进行全局替换为Massachusetts同时忽略大小写

[root@localhost ~]# sed -i ‘s/MA/Massachusetts/gi’ test.txt

追加命令:a

sed -i ‘2a\1111111111111’ /etc/hosts

该命令会将 1111111111111 追加到 /etc/hosts 文件的第 2 行后面,原第 2 行的内容不会被修改

sed -i ‘2i\1111111111111’ /etc/hosts

该命令会在 /etc/hosts 文件的第二行之前插入一行,内容为 1111111111111
原本的第二行会变成第三行
修改命令:c

sed -i ‘2c\1111111111111’ /etc/hosts

该命令会将 /etc/hosts 文件中的第二行替换为 1111111111111,不保留原第二行内容

由于在使用 -i 参数时比较危险, 所以我们在使用i参数时在后面加上.bak就会产生一个备份的文件,以防后悔
[root@localhost ~]# sed -r -i.bak ‘s/root/ROOT/’ passwd

awk
切ip地址 ip a | grep glo | awk ‘{print $2}’ | awk -F"/" ‘{print $1}’、

抓出来本机使用的swap 分区大小

free -h | awk NR==3’{print $3}’

cat /etc/passwd | awk -F":" ‘{print $1}’


  1. \t ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值