1.grep 文本过滤命令

grep中的正则表达式

^westos    #以westos开头westos$    #以westos结尾'w....s''w.....''.....s'grep -E = egrep

应用:

cp /etc/passwd   /mntcd /mntvim /mnt/passwd
添加(为后边的实验效果做准备):
test:test:root
ROOT:test:test
test:root:testgrep ^root  passwd    #过滤以root开头的行
grep root$  passwd    #过滤以root结尾的行
grep -i ^root  passwd    #不区分大小写,过滤以root结尾的行
grep -E "^root|root$"  passwd #过滤以root开头或者以root结尾的行,-E表示扩展正则表达式
grep -E -v "^root|root$"  passwd   #-v表示反向过滤
grep -E -v "^root|root$"  passwd | grep root    #过滤root在中间的行
grep -i root passwd | grep -v -i -E "^root|root$"  #过滤root在中间的行
grep 'r.t' test       #过滤r和t之间只有一个字符
grep 'r..t' test      #过滤r和t之间有二个字符
grep 'r...t' test     #过滤r和t之间有三个字符
grep 'r*t' test       #过滤r出现的任意次数
grep  'r\**t' test    #过滤r,t之间有0个字符
grep  'ro*t' test     #过滤r和t之间o出现的任意次数
grep  -E 'ro*t' test  #过滤r和t之间o出现的任意次数
grep  -E 'ro?t' test  #过滤r和t之间o出现的0和1次
grep  -E 'ro{1,}t' test  #过滤r和t之间o出现的1以上的次数
grep  -E 'ro{,3}t' test  #过滤r和t之间o出现的3以下的次数

2.sed 行编辑器

/*显示*/
sed -n '^:/p' fstab   #显示fstab中以:开头的行
sed -n 'UUID$/p' fstab  #显示fstab中以UUID结尾的行
sed -n '/^UUID/p' fstab  #显示fstab中以UUID开头的行
sed -n '2,6p' fstab    #显示fstab中的第二和第六行
sed -n '2,6!p' fstab    #显示fstab中除过第二和第六行其余的行
/*删除*/
sed '/^UUID/d'  fstab   #删除以UUID开头的行
sed '/^#/d'   fstab     #删除以#开头的行
sed '/^$/d'   fstab     #删除以空格开头的行
sed  '/^UUID/!d'  fstab  #删除不是以UUID开头的行
cat -n fstab | sed '1,4d'  #删除1到4行
cat -n fstab | sed -e '2d;6d'   #删除第二行和第六行
/*添加*/
sed '/^UUID/a\hello'  fstab   #在以UUID开头的行的前一行添加hello
sed '/^UUID/a\hello  \nwestos'  fstab  #在以UUID开头的行的前一行添加hello换行再添加westos/*插入*/
sed '/^UUID/i\hello'   fstab   #在UUID的前一行添加hello/*替换*/
sed 's/要被取代的字串/新的字串/g' #查找并替换
sed '/^UUID/c\hello' fstab  #把以UUID开头的行替换成hello/*其他操作*/
1  sed -n '/^UUID/='  fstab  #显示以UUID开头的行号
2  sed -n -e  '/^UUID/p' -e '/^UUID/=' fstab  #-e用来连接''
3  sed '=' fstab | sed 'N'     #N表示每行多加一个换行符
4  sed '=' fstab | sed 's/\n//g'    #显示行号并换行
5  sed '=' fstab | sed 'N;s/\n/ /g'  #显示行号不换行
6  sed 'G' fstab   #每行加空行显示fstab中内容
7  sed '$!G' fstab     #每行加空行但最后一行不加空行显示
8  sed -n '$p'  fstab      #显示文件的最后一行
9  sed 's/nologin/westos/g' passwd     #把passwd中以nologin结尾的全部替换为westos
10 sed '3,5s/nologin/westos/g' passwd  #用westos替换passwd中第三行到第五行的nologin
11 sed '/adm/,/sync/s/nologin/westos/g;s/sbin/wang/g' passwd  #用westos替换以adm和sync开头

3.awk 报告生成器(列操作)

awk '{print $1}' #打印第一列
awk 'BEGIN{ORS=","}{print $1}' #打印第一列并替换换行为逗号
awk -F ":" '{print $1}' passwd  #以:为分隔符,显示第一列
awk -F ":" 'BEGIN{print "NAME"}{print $1}'  passwd  #以NAME开始显示第一列
awk -F ":" 'BEGIN{print "NAME"}{print NR$1}END{print "END"}'  passwd #以NAME开始,以END结束,显示第一列并显示行号
awk -F ":" 'BEGIN{print "NAME"}{print NR;print  }END{print "END"}'  passwd #显示行号并换行
awk -F ":" '/bash$/{print $1}' passwd   #sh结尾的行的第一列,$1表示第一列
awk -F ":" 'BEGIN{N=0}/bash$/{N++}END{print N}'  passwd  #统计passwd中以bash结尾的行数
awk '/^ro/{print}' passwd      #打印以ro开头的行
awk '/^[^a-d]/{print}' passwd  #打印以a到d开头的行
awk '/^a|nologin$/{print}'  passwd  #打印以a开头或者以nologin结尾的行
awk -F ":" '$1~/^r/{print}'  passwd #打印以r开头的行
awk -F ":" '$1!~/^r/{print}'  passwd  #打印不以r开头的行
awk -F ":" '{print NR,$0}' passwd  #以:为分隔符打印第一列,并表示行号,$0表示文件一整行的内容

linux shell 字符串处理过滤方法相关推荐

  1. linux shell 字符串操作(长度,查找,替换)详解 BASH

    linux shell 字符串操作(长度,查找,替换)详解 在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系 ...

  2. linux shell字符串及字符串长度获取方式

    linux shell字符串及字符串长度获取方式

  3. 在 Linux shell 字符串中,百分比符号是什么?

    当你正在学习如何完全使用 Linux shell 时,你可以能会觉得自己能够对字符串进行操作. 记住,今天q&一个文章的超级用户对读者的一个奇怪问题有答案. 今天,回答会话的问题来自超级用户的 ...

  4. linux进度条脚本,linux shell进度条实现方法

    linux shell进度条实现方法 直接看代码吧,很简单 复制代码 代码如下: #!/bin/bash b='' i=0 while [ $i -le  100 ] do printf " ...

  5. linux shell 字符串作变量名 间接变量引用

    方法一 #!/bin/bash name=yushuang var=name # 要获取到yushuang res=`eval echo '$'"$var"` echo $res ...

  6. linux命令行的操作符,Linux shell 比较运算符使用方法教程

    Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统.对于Linux基础,肯定要掌握的是基本命令和一些重要运算符,这篇文章主要介绍了Linux shell 比较运算符详解 ...

  7. linux shell 字符串长度

    本篇内容主要包括以下内容: 获取字符串长度的方法 各方法间性能比较 相关内容补充 说明:本篇内容为学习shell  编程(老男孩教程) 笔记,部分内容为相关视频课程内容,补充部分是我查资料所得,方便理 ...

  8. Linux Shell字符串变量头尾去除空格

    本身想用简单的拿来主义,使用某搜索引擎推荐的博文,来去除Linux Shell中字符串变量头尾的空格. 但是,发现推荐的方法,竟然很多文章是用echo "some string" ...

  9. Shell 字符串拼接的方法

    value1=homevalue2=${value1}"="echo $value2 简单粗暴- 居然直接怼在一起就好了... 资料: 1.Linux Shell 脚本中字符串的连 ...

最新文章

  1. radio切换控制div显示_React 项目实践——搭建一个温度控制 App
  2. Spring Boot下的Redis缓存实战
  3. 1026 Modular multiplication of polynomials
  4. “package XXX is not in GOROOT“ when building a Go project2021-09-06
  5. Promise-js异步加载解决方案
  6. 《MySQL——如何解决一主多从的读写分离的过期读问题》
  7. ajax json的参数,java ajax json参数
  8. unity描边发光shader_unity shader实例#1 轮廓渲染-描边
  9. 【转】ASP.NET MVC生命周期介绍
  10. 使用Lazy对构造进行重构后比较
  11. html播放flv直播源码,使用flv.js实现HTML5播放FLV视频文件
  12. Javascript学习待续
  13. 上班我是这样玩微信的,带你一起玩?
  14. 大数据项目实战——基于某招聘网站进行数据采集及数据分析(一)
  15. network secruity studay day3
  16. 查询电脑关机/重启记录
  17. qpieseries显示百分比_为饼图添加百分比显示效果
  18. 2020手机音频解码芯片_2020杰理音频芯片全解析,14款音频产品代表作拆解汇总...
  19. 【专访】润和软件刘洋:同心聚力开拓基于OpenHarmony的国产化科技创新之路
  20. 打破界限,获得新生——观电影《云图》有感

热门文章

  1. 【Yolov5】1.认真总结6000字Yolov5保姆级教程(旧版本2021.08.03作为备份)
  2. AttifyOS 3.0下载(固件提取)物联网评估测试工具集成系统
  3. Facebook运营策略中的SEO优化:10个提示
  4. 有办法忘了一个人吗?
  5. 2、微信小程序开发界面
  6. 游戏逆向学习——易语言制作游戏输入性脚本之异星工厂
  7. bzojnbsp;1770nbsp;[Usaco2009nbsp;Nov]lightsnbsp;…
  8. 国产CAD_首款国产CAD适配统一操作系统UOS:兼容鲲鹏、兆芯、龙芯等国产CPU
  9. 抖音小店需要自己囤货吗|成都集光共创
  10. PHP异步:fsockopen及swoole异步