ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux-三剑客

2022-08-31 23:00:30  阅读:208  来源: 互联网

标签:输出 匹配 pattern awk Linux print 文本 三剑客


grep

文本搜索

grep [option] pattern files
-c: 只输出匹配行数
-i: 不区分大小写
-l:查询多文件时只输出包含匹配字符的文件名
-n: 显示行号
-s: 不显示不存在或无匹配文本的错误信息
-v: 反向搜索
-o: 只显示匹配的部分
-B<num>:同时显示匹配行前num行
-A<num>:同时显示匹配行后num行
-<num>: 同时显示匹配行的上下num行
-C<num>: 同时显示匹配行的上下num行
-w: 精确匹配,abc 只能匹配abc ,不能匹配abcd
-e: 同时匹配多个,-e pattern1 -e pattern2,任意一个pattern匹配成功就输出
-q: 不显示匹配到的内容,只关心是否匹配成功,$?为0表示匹配成功,1表示失败
-E: 使用扩展正则表达式,
-P:使用perl兼容的正则表达式

egrep:相当于grep -E
fgrep:不支持正则,速度快
三种正则比较

awk

文本处理,一行一行的读取,处理

awk 'BEGIN {command} pattern {commands} END{command}' file

BEGIN: 数据处理前执行的命令
END: 处理数据后执行的命令
pattern: 模式,每一行都执行的命令
BEGIN和END里的命令都只执行一次, pattern里的命令每一行执行一次
-F :指定文本分隔符,默认空格。

# awk中的预定义变量
$0代表整行,$1-n,代表分隔后的第1到n个字段
NF: 字段数
NR: 行号
FS: 文本内容分隔符,优先级高于-F
OFS: 输出分隔符,默认空格

# awk中的函数
print : 打印
printf: 格式化打印
  %s: 字符串
  %d: 数字
  -:左对齐
  +: 右对齐
  15: 至少占用15个字符

比较表达式

匹配文本之内的内容

>, <, >=, <=
~: 正则匹配, 
!~: 正则匹配不包含

awk -F: '$4>$3 {print $0}' /etc/passwd
awk 'BEGIN{FS=":"} $NF ~ /bash/ {print $0}' /etc/passwd

条件表达式:文本之外的内容

==, >, <, >=, <=
&& || !
awk -F: 'NR==3{print $0}' /etc/passwd

算术表达式

+, -, * , /, %

awk '$3+$4>2000{print $0}' /etc/passwd

流程控制

if:
  if(){}
  if(){}else{}
  if(){}else if{}else{}
for:
  for(i=1;i<10;i++){}

while:
  while(condition){}

awk -F: '{if($3>$4){print "大于"}else{print "小于或等于"}}' /etc/passwd

sed

文本编辑

sed [选项] [动作] [inputfile]

# 选项
-n: 只输出经过处理的行,默认情况下所有行都会输出
-i: 修改文件内容而不是输出到终端
-f: 把动作写到文件中
# 动作
a: 添加行,3a在第三行后面添加一行
i: 插入行,3i在第三行插入
c:取代行, 3c取代第三行
p: 列印,与-n连用只输出匹配的行
s: 替换, s/old/new/ 

标签:输出,匹配,pattern,awk,Linux,print,文本,三剑客
来源: https://www.cnblogs.com/baiyutang7/p/16644852.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有