gerp(行处理)

重在查找
-a 或 --text : 不要忽略二进制的数据。
-A<显示行数> 或 --after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。
-b 或 --byte-offset : 在显示符合样式的那一行之前,标示出该行第一个字符的编号。
-B<显示行数> 或 --before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。
-c 或 --count : 计算符合样式的列数。
-C<显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。
-d <动作> 或 --directories=<动作> : 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
-e<范本样式> 或 --regexp=<范本样式> : 指定字符串做为查找文件内容的样式。
-E 或 --extended-regexp : 将样式为延伸的正则表达式来使用。
-f<规则文件> 或 --file=<规则文件> : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
-F 或 --fixed-regexp : 将样式视为固定字符串的列表。
-G 或 --basic-regexp : 将样式视为普通的表示法来使用。
-h 或 --no-filename : 在显示符合样式的那一行之前,不标示该行所属的文件名称。
-H 或 --with-filename : 在显示符合样式的那一行之前,表示该行所属的文件名称。
-i 或 --ignore-case : 忽略字符大小写的差别。
-l 或 --file-with-matches : 列出文件内容符合指定的样式的文件名称。
-L 或 --files-without-match : 列出文件内容不符合指定的样式的文件名称。
-n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。
-o 或 --only-matching : 只显示匹配PATTERN 部分。
-q 或 --quiet或–silent : 不显示任何信息。
-r 或 --recursive : 此参数的效果和指定"-d recurse"参数相同。
-s 或 --no-messages : 不显示错误信息。
-v 或 --revert-match : 显示不包含匹配文本的所有行。
-V 或 --version : 显示版本信息。
-w 或 --word-regexp : 只显示全字符合的列。
-x --line-regexp : 只显示全列符合的列。
-y : 此参数的效果和指定"-i"参数相同。

sed(文本)

sed 可依照脚本的指令来处理、编辑文本文件。
参数说明:
-e 以选项中指定的script来处理输入的文本文件。
-f<script文件>或–file=<script文件> 以选项中指定的script文件来处理输入的文本文件。
-h或–help 显示帮助。
-n或–quiet或–silent 仅显示script处理后的结果。
-V或–version 显示版本信息。
动作说明:
a :新增,a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代,c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i :插入,i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g ‘g’:代表全局。

awk(列处理)

awk同时也是一门编程语言,也有变量、数组、判断、循环等语法,awk内置了很多实用函数
重点:列处理、列过滤
awk简单使用,默认会使用空白字符隔成一列一列的
选项参数说明:

-F fs or --field-separator fs
指定输入文件折分隔符,fs是一个字符串或者是一个正则表达式,如-F:。
-v var=value or --asign var=value
赋值一个用户定义变量
-f scripfile or --file scriptfile
从脚本文件中读取awk命令。
-mf nnn and -mr nnn
对nnn值设置内在限制,-mf选项限制分配给nnn的最大块数目;-mr选项限制记录的最大数目。这两个功能是Bell实验室版awk的扩展功能,在标准awk中不适用。
-W compact or --compat, -W traditional or --traditional
在兼容模式下运行awk。所以gawk的行为和标准的awk完全一样,所有的awk扩展都被忽略。
-W copyleft or --copyleft, -W copyright or --copyright
打印简短的版权信息。
-W help or --help, -W usage or --usage
打印全部awk选项和每个选项的简短说明。
-W lint or --lint
打印不能向传统unix平台移植的结构的警告。
-W lint-old or --lint-old
打印关于不能向传统unix平台移植的结构的警告。
-W posix
打开兼容模式。但有以下限制,不识别:/x、函数关键字、func、换码序列以及当fs是一个空格时,将新行作为一个域分隔符;操作符=不能代替=;fflush无效。
-W re-interval or --re-inerval
允许间隔正则表达式的使用,参考(grep中的Posix字符类),如括号表达式[[:alpha:]]。
-W source program-text or --source program-text
使用program-text作为源代码,可与-f命令混用。
-W version or --version
打印bug报告信息的版本。

awk内置变量:
$0 整行
$1 第一列
$2 第二列
$n 第n列
$NF 最后一列 cat 目录 |awk ‘{print $NF}’
NR 当前处理到第几 cat 目录 |awk ‘{print NR}’

awk针对列过滤整数比较:
number1 > number2
number1 < number2
number1 == number2
number1 >= number2
number1 <= number2
字符串比较:
cat /tmp/jsetc |awk ‘$3 == “hangzhou”’ #字符串对比
cat /tmp/jsetc |awk ‘$3 != “hangzhou”’
awk针对列过滤,使用正则
cat /tmp/jsetc |awk ‘$3 ~ /sh/’ #字符串正则
cat /tmp/jsetc |awk ‘$3 ~ /(sh)|(hang)/’ #支持扩展正则 |: 或

参数
awk [option] ‘{pattern + action}’ {filenames} # sometims muti file is ok
awk [option] 'BEGIN{初始代码} {循环代码} END{最后代码}’ filename
BEGIN{}大括号里: 只运行一次,在文本处理开始前运行
{}大括号里: 针对每一进行处
END{}大括号里: 只运行一次,在文本处理结束后运行
BEGIN可以用来做浮点数运算
awk ‘BEGIN{printf("%.2f",5/3)}’
例:
计算文件大小:
$ ls -l .txt | awk '{sum+=$6} END {print sum}'v
从文件中找出长度大于80的
awk ‘length>80’ log.txt
打印9
9乘法表:
seq 9 | sed ‘H;g’ | awk -v RS=’’ ‘{for(i=1;i<=NF;i++)printf("%dx%d=%d%s", i, NR, i*NR, i==NR?"\n":"\t")}’

awk使用-F指定分隔符
默认分隔符是以多个空白字符作为分隔:空格、tab
-F参数可指定分隔符,后面跟正则表达式,支持扩展正则
#awk -F ‘:’ 指定单个分隔符
#awk -F ‘[;:]’ 或 ‘;|:’ 指定多个分隔符

awk多个单字符分隔
cat /tmp/jsetc |awk -F’[:;]’ ‘{print $3}’
cat /tmp/jsetc |awk -F’: |;’ ‘{print $3}’
awk支持多字符分隔
cat /tmp/jsetc |awk -F ‘:+|;’ ‘{print $3}’
awk传参
cat /tmp/jsetc |awk -v age=30 ‘$2>age{print $0,age}’
cat /tmp/jsetc |awk -v age1=20 -v age2=34 ‘$2>age1 && $2<age2’
awk的复杂过滤
cat /tmp/jsetc |awk '$3==“hangzhou” || $3 == “shenzhen” ’
awk的判断语法,每种语言都有自己的判断语法
awk ‘{ if(条件){条件成立执行}else{条件不成立执行} }’
多条语句,需要以;分隔

Shell关联数组支持用字符串为索引
declare -A info
info[‘name’]=“jsetc”
info[‘age’]=28
echo ${info[‘name’]}
echo ${info[‘age’]}
awk循环语法
for(i in 数组变量){
print i,数组变量[i]
}

正则表达式:
#输出第二列包含 “th”,并打印第二列与第四列
$ awk ‘$2 ~ /th/ {print $2,$4}’ log.txt ~ 表示模式开始。// 中是模式。
#输出包含"re" 的行
$ awk ‘/re/’ log.txt

忽略大小写:
awk ‘BEGIN{IGNORECASE=1} /this/’ log.txt

文本处理三剑客(grep sed wak)相关推荐

  1. 28.文本处理三剑客grep,sed,awk

    三剑客的功能非常强大,但我们只需要掌握他们分别擅长的领域即可:grep擅长查找功能,sed擅长取行和替换,awk擅长取列. 目录 一.grep 二.sed sed选项 sed内置常用命令字符 sed匹 ...

  2. 文本处理三剑客之 sed 流编辑器(基础部分)

    文本处理三剑客之 sed 流编辑器(基础部分) SED 即 Stream EDitor.和交互式编辑器如 vi 需要打开整个文件不同,sed 是行编辑器,每次处理一行,比较适合在脚本中进行无交互编辑, ...

  3. Shell ❀ 三剑客 - Grep + Sed + Awk

    文章目录 八.三剑客 - Grep + Sed + Awk 1.Grep - 过滤 1.1 常用grep参数 1.2 使用方法 2.Sed - 行匹配 2.1 执行原理 2.2 常见语法 2.3 使用 ...

  4. 文本处理三剑客之sed(流编辑器)

    文本处理三剑客之sed(流编辑器) - 行编辑器 把当前处理的行存储在临时缓冲区,称为模式空间,然后把模式空间的内容送往屏幕,一行一行的处理,主要用来编辑一个或者多个文件. - 用法 sed [opt ...

  5. 三剑客grep sed awk

    三剑客 正则(RE)表达式 应用场景 规则 注意事项 正则符号 基础正则 扩展正则 正则实例 正则 VS 通配符 三剑客 grep sed sed核心应用 awk awk执行过程 内置变量 awk 正 ...

  6. 七:Shell脚本:正则表达式与文本处理器三剑客grep,egrep, sed,awk

    正则表达式定义 正则表达式,又称正规表达式.常规表达式 使用字符串来描述.匹配一系列符合某个规则的字符串 ●正则表达式组成 ◆普通字符 大小写字母.数字.标点符号及一些其他符号 ◆元字符 在正则表达式 ...

  7. Linux文本处理三剑客之sed

    推荐新手阅读[酷壳]或[骏马金龙]开篇的教程作为入门.骏马兄后面的文章以及官方英文文档较难. [酷壳]:https://coolshell.cn/articles/9104.html [骏马金龙-博客 ...

  8. linux 下 grep -c sh* /etc/passwd,Linux文本处理三剑客--grep

    稍微接触过linux都会知道有三个非常强大文本处理工具,那就是grep.sed和awk,想必都有听说过吧. Linux文本处理三剑客: grep, egrep, fgrep:文本过滤工具(模式:pat ...

  9. 9、Linux文本处理三剑客之sed命令

    Linux 用于处理文本数据的三剑客,分别为 grep 命令.awk 命令和 sed 命令,再加上正则表达式,就可以处理文本文件中各种常见的数据需求了.一般来说,grep 命令倾向于查找,sed 命令 ...

  10. 【Linux】 字符串和文本处理工具 grep sed awk

    Linux字符串&文本处理工具 因为用linux的时候主要用到的还是字符交互界面,所以对字符串的处理变得十分重要.这篇介绍三个常用的字符串处理工具,包括grep,sed和awk ■ grep ...

最新文章

  1. GitHub上的“金矿”(236个Python开源项目,涵盖了15个领域)
  2. 一种基于FPGA硬件求解对数的简化方法
  3. Java的Arrays.sort()良心总结
  4. 开展批评时的方式与态度
  5. mac开发java安卓_mac下Android开发环境搭建
  6. FCK添加远程图片自动下载
  7. Android 四大组件 之 服务(Service)
  8. web前端教程,详解引入CSS的4种方式
  9. Fxfactory插件:光雾滤镜插件PHYX Stylist
  10. 我对于创业公司的看法
  11. 【RabbitMQ】基础四:路由模式(Routing)
  12. 嗖的一下第二弹,这些好看的皮肤直接一键收下~~
  13. 服务器挂起文件怎么删除,挂起的更改
  14. android+微信分享代码,Android 微信分享icon黑边代码解决
  15. 通过evel将字符串作为函数执行函数
  16. 利用photoprism搭建私有云相册
  17. 2010高分传记剧情《国王的演讲》DVD中英双字1024高清
  18. python+百度翻译api制作中英文互转的代码应用实例
  19. Python25行代码爬取豆瓣排行榜数据
  20. maven 实战经验

热门文章

  1. [做初中数学题做到打起来了]跟同事为了他小孩的数学题杠上了
  2. bzoj D. Captain America(TLE)
  3. 一道简单的推理题(日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个)
  4. 北京尚学堂|程序员一般遇到BUG怎么办
  5. mysql5.7免安装教程,配置my.ini详解,安装卸载mysql服务,开启远程登录,修改mysql密码
  6. 推送至远程仓库流程 (二)
  7. 倍福--第三方伺服数字IO连接到PLC信号中
  8. 笔记代码 | 统计学——基于R(第四版) 第十一章 时间序列预测
  9. SEO基础之跳出率(用户体验连载3)
  10. WooCommerce SEO:电商平台和商城系统SEO的权威指南