Linux三剑客

文章目录

grep

-ccount只输出匹配行的计数
-iignore不区分大小写
-wwhole word精确匹配
-vinvert显示不匹配的所有行
-eegrep使用正则表达式
-n显示行号
-r递归查找
-l不显示匹配行,只显示匹配文件
#!/bin/bash
#寻找/etc/passwd中包含root的行
grep 'root' /etc/passwd
#寻找/etc/passwd中包含root的行,同时显示行号
grep -n 'root' /etc/passwd
#寻找/etc/passwd中不包含root的行
grep -v 'root' /etc/passwd
#在当前目录搜索带'root'行的文件
grep 'root'
#在当前目录及其子目录下搜索'root'行的文件
grep -r 'root'
#在当前目录及其子目录下搜索'root'行的文件,但是不显示匹配的行,只显示匹配的文件
grep -l -r 'root'
#精确匹配root
grep -w 'root' /etc/passwd

awk

功能:通过正则表达式得到需要的行列信息

-F指明分隔符
“”输出空白字符
FSinput field seperator输入字段分隔符,与-F选项作用相同,默认为空白字符
OFSoutput field seperator输出时分隔字符,默认为空白字符
RSinput record seperator输入时得换行符,默认为\n换行符
ORSutput record seperator输出时的换行符,默认为\n换行符
NFnumber of field字段数量
NRnumber of record统计行数,即给每行显示行数,命令后跟的所有文件将统一合并计数
#!/bin/bash
#以:为间隔
awk -F: '{print $1,$2}' /etc/passwd
#加入字符串
awk -F: '{print "hello" $1}' /etc/passwd
#整行输出
awk -F: '{print}' /etc/passwd
#输出空行(表示每处理一行就输出空行)
tail /etc/passwd |awk -F: '{print ""}'
#输入字段分隔符
awk -v FS=":" '{print $1,$3}' /etc/passwd
#输出时分隔字符
awk -v FS=":" -v OFS=":" '{print $1,$3}' /etc/passwd
#输入时得换行符
awk -v RS=":" '{print}' /etc/passwd
#输出时的换行符
awk -v RS=":" -v ORS="#" '{print}' /etc/passwd
#字段数量
awk '{print NF}' /etc/fstab
#统计行数
awk '{print NR}' /etc/fstab /etc/issue
#计算
awk 'BEGIN{print 4*5}'

sed

功能:通过正则表达式完成指定关键字的过滤、截取、修改等操作
特点:

  • sed属于一个流线式的非交互式的编辑器
  • 在输入sed命令后,结果会在屏幕上输出
  • 在不用-i修改文件之前,sed不会改变文件内容
p查看文件
d删除内容
a在行下追加文字
i在行上插入文字
s替换单词
c替换整行
y替换字符
-i修改文件(不加则所有修改都不生效)
-e执行多个条件
-f调用条件文件
-n抑制内存输出
\ttab键
\n换行
/number第num个
/g全文
/w写入另一个文件
/p打印
/r正则
#!/bin/bash
#不论sed进行什么操作,如果没有-i选项则一律不生效
#查看/etc/passwd
sed p /etc/passwd
#在每一行下添加hello
sed 'ahello' /etc/passwd
#在第5行下添加hello
sed '5ahello' /etc/passwd
#在3、4、5行下添加hello
sed '3,5ahello' /etc/passwd
#在第5行上添加hello
sed '5ihello' /etc/passwd
#换行
sed '5ahello\nworld' /etc/passwd
#删除
sed '1d' /etc/passwd
#替换匹配的第1个词
sed 's/root/abcd/' /etc/passwd
#替换行
sed '1chello world' /etc/passwd
#替换字母
sed 'y/r/R/' /etc/passwd
#多条件一起执行
sed -e '1chello world;y/r/R/' /etc/passwd
#全局替换
sed 's/root/abcd/g' /etc/passwd
#重定向替换后的文件
sed 's/root/abcd/g /etc/passwd2' /etc/passwd
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值