grep、sed、awk个人总结

  
 <代码>正则表达式
  
  ifconfig | sed - n 2 p | sed的年代。* inet//g | sed的年代#子网掩码。* $ # # g’#用/#均可理论可用任何特殊字符替代
  # sed - r后面可跟扩展正则扩展正则+ (. *)
  ifconfig | sed - n 2 p | sed - r的# ^。* inet Broast (. *)。* $ # \ 1 # g’# \ 1代表正则中的第一个组即(. *)里的内容
  
  ifconfig | sed nr 2年代# ^。* inet (. *)。* $ # \ 1 # gp的#合成一行
  ifconfig | awk的NR==2{打印$ 2}’#取IP地址awk默认分隔符是空格取IP最方便
  
  ifconfig ens33 | grep - o”inet [0 - 9。[0 - 9]*“| grep - o”。*”#取IP
  ifconfig ens33 | sed nr 2年代# ^。([0 - 9]* inet。*)子网掩码。* $ # \ 1 #医生'
  
  猫卑劣。txt | sed - r的# ^ * inet。(. *)子网掩码(. *)广播(. *)$ ^ C1 \ 2 \ 3 # g’
  
  sed - r的# (. *):(. *),(. *),(. *),(. *),(. *),(. *)$ # 7 \ \ 6 \ 5 \ 4 2 \ 3 \ \ 1 # g’#后向引用换位置sed最多引用9个,用awk更方便
  
  sed - n '/^ $/d ' #空行删除//中写字符串
  
  sed的1、2 # C #——和——# g’#这里,代表C C也可以是正则表达式
  
  ls | sed的#(^ . *)哈哈# 1. mv \ jpg # g | bash
  
  sed 1 ~ 2 p的#我d奇数行
  sed的2 d ~ 2 p的#我偶数行
  
  sed的# ^ # #负责人g’#头加
  sed的尾巴# $ # # g’#尾加
  
  sed的# ^ #测试# g’#开头加测试
  sed的# $ #测试# g’#末尾加测试
  
  sed多行操作sed的2,str的1 ~ 2,str的1我str/' 1, 2 d ' ' 5 ~ 10 d '/' 1 ~ 3 p”“1、3 p”
  # sed在我d的时候必须有相应的行,空文件会出错,也就是说空文件无法直接用sed添加
  sed '/新/d ' #删除包含新的行sed命令中- n p sed中- n p基本都是成对出现
  
  awk - f”:“{”:“打印1美元2美元”:“3”:“4美元”:“5”:“6美元”:“7”- - - - - -“1美元}“passwd #这里是全文操作
  
  awk - f”5 | 28“NR==5{打印$ 2}’# 5或28作为分隔符两个字符串这种格式最好用|即使单个字符也用|否则字符串造成歧义
  
  我| awk的{如果(在2美元;5)打印$ 0}的$ 0表示整行
  sed -我的#页# dd # g”1。txt将1。txt文件中的pp改成dd立即生效,我代表直接写入文件 
  

#在LINUX中,所有的文本处理都是读取一行(进内存)处理一行输出一行直接循环结束
正则表达式字符串用“;”以防问题

  
 <代码> ^。*以任意字符开的头
  . *美元以任意字符结尾
  ^字以字开的头
  词以美元结尾
  [^字]括号里的是取反
  。只代表一个字符”是字符就匹配上了所有除空行“空格和空行是不一样的
  \转义
  *重复前面0或多个字符
  . *所有
  (abc)匹配集合内任意一个字符
  (^ abc)匹配集合内除abc的任意一个字符
  [0 - 9][a - z]的[a -?]
  一个\ \}{n,米重复一至少n次到至多m次# # \ {n, m \}这种形式必须用“引起来且”“两边没有空格,否则会报的错
  一个\ \ {n, \} {, m \} \ \ {n}重复n次
  
  egrep sed - r可以不使用\转义
  
  # #了解扩展正则表达式grep - e egrep
  +一个或一个以上(*是0或多)
  吗?0或一个前面字符
  |表示同时过滤多个字符串egrep”sshd | systemd”
  ()后向引用参考(. *)\ 1
  
  grep - n -我不区分大小写- o只显示匹配到的内容不输出整行
  
  找到/测试类型f - name”*。sh”| xargs sed -我的# #新老# g’!叹号可取反——和- o
  也可同时写sed - i ' s # #新老# g * . sh
  
  # awk
  NR 0美元整行$ 1 $ 2 $ NF最后一列NF为全行列数
  $ (NF-1)倒数第二行
  
  # awk原理一行是一个记录
  # RS表示一个记录的结束FS表示一个区域的分隔NF美元为最后一个区域
  
  ifconfig | awk开始RS=?“{}”{打印$ 1}’以:为代替回车为换行符
  
  #正则条件(NR==2)范围(NR==2, NR==5) 2到5
  # 1美元~/正则开始/,3美元~/正则结束/awk - f”[:] + | \ t +”“{打印$ 2}”等级以1个或多个:(空格或冒号)或1或多个标签制表符作为分隔符
  
  #开始模块结束模块
  seq 100 | awk”{+=$ 1}{打印}结束' 1加到100
  
  猫passtemp | awk的{子(/x/,“购买力平价”)}{打印$ 0}‘awk替换
  
  awk的1美元lisi ~//{打印$ 0}’年级年级文件匹配1美元包括lisi的行并打印出行
  
  awk的4美元~/(5 | 3)$/{打印$ 0}’级匹配5或3结尾
  awk的1美元~/^ [l | W]/{打印$ 0}’级匹配l或W开头用[]和()都可为了和正则匹配强烈建议用[]
  awk - f“\ t”3 ~/^ 9美元/{打印$ 0}’
  
  #不包含:!在awk中不包含可以使用!表示
  在awk中,可以用来替换的有三个函数:子gsub gensubsub (r, s (t))
  
  r/找谁/疤婊怀墒裁础?
  
  []替换那个部分的
  
  awk的詹1美元~//{gsub (/zhang3/,“ccccc”, 1美元),打印$ 0}的品位
  # #注意/zhang3/癱cccc”以及多个命令间用;分号
  

grep、sed、awk个人总结