五十四、Linux——Linux的三剑客

这篇博客详细介绍了在Linux环境中使用shell三剑客——grep、sed和awk进行文本处理的各种实例。从基本的搜索、替换到复杂的行选择和文件操作,展示了这些命令在日常系统管理中的强大功能。内容包括查找特定字符串、忽略大小写、正则表达式匹配、行号显示、行选择、内容插入和删除、分段显示等。
摘要由CSDN通过智能技术生成

  shell三剑客:grep、sed、awk
  
   77  cd /opt/soft/shelldemo/   进入shelldemo
   78  ls
   79  ll
   80  cp /etc/passwd .
   81  ls
   82  vi ./passwd
   83  grep root  passwd        找到root
   84  grep ^root passwd        找到抬头是root   ^
   85  grep bash$  passwd        找到末尾是bash   $
   86  grep -i ROOT passwd        找到root  忽略大小写
   87  cat test.txt             显示test.txt内容    
   88  vi ./test.txt            进入test.txt
   89  cat test.txt              
   90  grep tom test.txt        查找test文件中的tom
   91  grep -i tom test.txt        查找test文件中的tom  Tom  大小写都行
   92  grep d..k test.txt        查找test文件中的d..k
   93  grep -E "root|ROOT" passwd   正则表达式 查找passwd中的root
  
   95  cat -n passwd         显示行号

   97  cat -n passwd | grep root    显示行号,并且找出passwd中的root

  100  cat -n passwd | grep root -2    显示上下两行
  101  cat -n passwd | grep root -A2   显示root的下面两行
  102  cat -n passwd | grep root -B2   显示root的上面两行
  103  cat -n passwd | grep r..t       查找passwd中的r..t
  104  grep tom test.txt            查找test.txt中的tom        
  105  grep Tom test.txt             查找test.txt 中的Tom
  106  cp /etc/fstab .                复制文件fstab
  107  ll
  108  cat fstab                    查看fstab文件内容
  109  cat -n  fstab                显示fstab内容行数
  110  cat -n  fstab | sed -n 4p    只显示fstab第4行
 

  113  cat -n  fstab | sed -n 3,6p       显示3-6行的内容
  114  cat -n  fstab | sed -n '3p;6p'   只显示第3行和第六行
  115  sed -n '/#/p' fstab                显示所有#行
  116  grep '#' fstab                 显示所有#行
 
  118  sed -n '/#/!p' fstab    显示所有不含#行
 
  120  sed -n '/2021$/p' fstab   只显示fstab中2021结尾的行列
  121  history
  
  122  sed -n '/info$/p' fstab    只显示fstab中info结尾的行列
  123  sed -n '/\:/p' fstab       显示所有含:的行
  124  sed -n '/^$/!p' fstab      空行不显示
  125  sed -n '/^UUID/p' fstab    显示UUID行
  126  sed '/^$/!p' fstab         空格不输出 ,输出两遍
  127  sed '/^$/!p' fstab | sed '/^#/!p'  空格不输出,四遍
  128  sed -n  '/^$/!p' fstab | sed -n  '/^#/!p'    空格、#号开头不输出
  129  sed -n  '/^$/!p' fstab | sed -n  '/^#/!p' | sed -n '/^UUID/!p'  空格、#号/UUID开头不输出
  130  sed '/^UUID/d' fstab    UUID开头不输出
  131  sed '/^UUID/!d' fstab   UUID开头输出
  132  sed '/^#/d' fstab       #号开头不输出    
  133  sed '/^$/d' fstab       空格不输出
   
  135  cat -n fstab                  显示fstab行数以及内容
  136  cat  -n fstab | sed '5d'      显示行数,删掉第5行
  137  cat  -n fstab | sed '1,5d'    显示行数,删掉1-5行
  138  cat  -n fstab | sed '1d;5d'   显示行数,删掉第1行和第5行
  139  sed '/^UUID/ahello' fstab     在UUID行下一行插入hello
  140  sed '/^UUID/ahello world' fstab   在UUID行下一行插入hello world
  141  sed '/^UUID/ahello world\nwelcome kb15' fstab       在UUID行下两行插入hello world 以及 welcome kb15
  142  sed '2ahello world\nwelcome kb15' fstab     在第2行插入hello world 以及 welcome kb15
   
  144  cat -n fstab  显示fstab内容行数
  
  146  cat -n fstab | sed '2ahello world\nwelcome kb15'   显示行数,在第2行插入hello world 以及 welcome kb15
  147  cat -n fstab | sed '2ihello world\nwelcome kb15' 显示行数,删除第2行的hello world 以及 welcome kb15
  148  sed '/#/ckb15' fstab      把#号替换成kb15
  
  150  sed -i.bat '/^#/cKB15' fstab   修改文件,并且备份
  151  cat fstab
  152  rm -rf fstab        删除文件fstab
  153  cp /etc/fstab .     拷贝文件fstab
  154  ll
  155  cat -n fstab        显示fstab行数以及内容
  
  156  sed '/^UUID/w fs' fstab   查到fstab中的UUID,并写入fs中
  157  cat  fs       显示fs内容
  
  159  vi insertcotent   打开文件insertcotent
  160  sed '3r ./insertcotent' fstab  把insertcotent文件中的内容读入fstab的第3行
  161  cat -n fstab |  sed '3r ./insertcotent' 显示行数,把insertcotent文件中的内容读入fstab的第3行
  162 
  167  cat -n fstab  |  sed '$r ./insertcotent' 显示行数,在fstab的最后一行中插入insertcotent文件中的内容
  168  sed 's/sbin/###/g' passwd                          把passwd中的sbin替换成###
  169  sed 's/sbin/*******/g' passwd                    把passwd中的sbin替换成*******

  171  sed '3,8s/sbin/*******/g' passwd                   把passwd中的第3-8行sbin替换成*******
  172  cat -n passwd |  sed '3,8s/sbin/*******/g'        显示行数,把passwd中的第3-8行sbin替换成*******
  173  cat -n passwd | sed 's/\//\\\\/g'                显示行数,把/改成\\
    
  174  sed '/adm/,/halt/s/sbin/*****/g' passwd            把passwd中的从adm行到halt行中的sbin替换成*******
  175  cat -n passwd | sed '/adm/,/halt/s/sbin/*****/g' 显示行数,把passwd中的从adm行到halt行中的sbin替换成*******
  176  cat -n passwd | sed 's/\///g'                    显示行数,删掉/  。或,把/改成无
  177  awk -F: '{print $1}' passwd                        以:分段,显示每一行的第一段                    
  178  cat passwd                                         显示passwd
  179  awk -F: '{print $1,$2,$3}' passwd                以:分段,显示每一行的第1,2,3段
  180  awk -F: '{print $0}' passwd                      以:分段,显示每一行
  181  
  182  vi awkdemo                                        打开文件awkdemo
  183  awk -F, '{print $1}' awkdemo                        以,分段,显示awkdemo每一行的第一段
  184  cat awkdemo                                        显示文件awkdemo
  185  awk -F, '{print NF}' awkdemo                        以,分段,显示awkdemo每一行有几段
  186  awk -F: '{print NF}' passwd                        以:分段,显示passwd每一行有几段
  187  awk -F: '{print $1, $2}' passwd                    以:分段,显示每一行的第1,2段
  188  awk -F: '{print $1, $2}' OFS='&'  passwd            以:分段,显示每一行的第1,2段。并把每行的分段之间用&连接
  189  awk -F: '{print $1, $2}' OFS='------'  passwd    以:分段,显示每一行的第1,2段。并把每行的分段之间用--------连接
  190  awk -F: '{print $1, $2}' OFS='\t'  passwd        以:分段,显示每一行的第1,2段。并把每行的分段之间用空格符隔开
  191  awk '{print}' passwd                                显示passwd
  192  awk '{print  $1}' passwd                            没有分段,显示每一行
  193  vi awkdemo                                        打开文件awkdemo
  194  awk '{print  $1}' awkdemo                        显示每一行
  195  awk '/mysql/{print}' passwd                        显示mysql行
  196  awk '/mysql/{print $0}' passwd                    $0代表整行,显示mysql行
 
            
  199  awk -F: '/mail/,/mysql/{print}' passwd                 输出passwd从mail行到mysql行
  200  cat -n passwd |  awk -F: '/mail/,/mysql/{print}'     显示行数,输出passwd从mail行到mysql行
  201  awk -F: '$1~/mail/{print $1}' passwd                    以:分段,输出mail行的第一段
  202  history

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天地风雷水火山泽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值