Linux 第四本书 第二单元--------文本处理工具

grep

 

grep -e bash -e sh passwd          ------过滤bash和sh
 grep -E "bash|sh" passwd          ------过滤bash和sh
 grep root passwd                  ------过滤root关键字
grep -E "\<root" passwd            ------root前不能有字符
grep -E "\<root\>" passwd          ------root前后都不能有字符
 grep  root passwd -A2             ------显示过滤行的下面2行
 grep  root passwd -B2             ------显示过滤行的上面2行
 grep  root passwd -v              ------把root出外

 
vim too
{
  uoo
   uwo
   uso
  usdado
  ubafo            
}

 

grep u.o too                  ------以u开头o结尾中间1个任意字符
grep u....o too               ------以u开头o结尾中间3个任意字符
grep u.*o too                 ------以u开头o结尾中间任意字符
grep -E 'u.+o' too            ------1次到任意次
grep -E 'u.?o' too            ------0次到1次
grep -E 'u.{1,2}o' too        ------1,2次
grep -E 'u.{2,}o' too         ------最少2次

===================================================

sed
用too文件 与fstab进行操作

 

sed -ne '1p;2p' too     查看too的1,2行
sed -n 2p  too          查看too第二行
sed -n 2,4p  too        查看too2到4行
sed -ne 1,5p too        查看too1,5行
cp /etc/fstab .

sed 5d fstab          删除第5行

 

sed '/^#/d' fstab     删除fstab带#

sed  -e '3,$d' too    删除too3行以后

sed -ne '/UUID/p' fstab   ------除了uuid其余全部删除

 


 sed '4ahello' too       给too第四行后加hello

 sed '4,5ahello' too     给too4,5行后加hello
 sed '$ahello' too          最后一行加hello
 sed '/UUID/ahello' fstab

 

       
sed '/^#/ctoo' fstab         把fstab里#的行全部换成too       
sed '/^#/d' fstab            删除带#的行数
sed '/^#/d;/^$/d' fstab     删除带#的行数  删除空行
sed '/^#/w file' fstab      把带#的内容全部倒入file里
 

 sed '2rwestos2' westos1   把westos2插入到westos1第二行

 

前提:
在mnt下,cp/etc/passwd .
  使用mnt下的passwd实验

sed '/sbin/cwestos' passwd               -------把带有sbin的行全部换成westos
sed 's/sbin/westos/g' passwd             -------把每一行带有sbin的换成westos
sed '1,5s/sbin/westos/g' passwd          -------把1-5行带sbin的换成westos
sed '1,5s/sbin/westos/' passwd           -------把1-5行的第一个sbin换成westos

 

sed '2s/sbin/westos/g;5s/sbin/westos/g' passwd  -把第2行和第5行的sbin换成westos

sed 's/sbin/westos/g;s/nologin/hello/g' passwd  -把全部的sbin换成westos同时把全部的nologin换成hello

 

sed '/lp/,/halt/s/sbin/westos/g' passwd  -从行lp开始到halt,所有sbin换成westos
sed 's@/@###@g' passwd                   --把每一行的/换成###

 

sed 's@/@###@g'  -i passwd                  --更改完后的内容保存到passwdvim  


使用配置文件方式
vim rule
{
  s/sbin/westos/g
  s/nologin/hello/g
}
 sed -f rule passwd


awk

 awk -F : 'BEGIN{START=0}{print START}END{print "START"}' passwd
  开始变量=1逐行输出,结尾输出START    
 awk -F : 'BEGIN{START=0}{print NR}END{print "START"}' passwd
  变量=1开始 输出行数,结尾输出START

 

 awk -F : 'BEGIN{START=0}{print NF}END{print "START"}' passwd
  变量=1开始 输出列数,结尾输出START
 awk -F : 'BEGIN{N=0}{N++}END{print N}' passwd
   N=1开始,每行自加1,输出N
 awk -F : '/sbin/{print $0}' passwd
   输出带有sbin行的 每一列

 awk -F : '!/sbin/{print $0}' passwd
   输出不带有sbin行的 每一列
 awk -F : '/sbin/||/test/{print $0}' passwd
  输出带有sbin或者带有test行数的每一列

 

 awk -F : '/sbin/&&/test/{print $0}' passwd
     输出带有sbin且带有test行数的每一列
 awk -F : '/sbin/&&/var/{print $1,$2}' passwd
  输出带有sbin且带有var行数的第一列和第二列
 awk -F : '/sbin/&&/var/{print $1":"$2}' passwd
   输出带有sbin且带有var行数的第一列:第二列
 awk -F : '$1~/bin/{print $0}' passwd
   所有行中第1列带有bin的,如果有输出所有列

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值