sed介绍

Sed是一个流处理编辑器,它能帮助我们自动处理文件、分析日志文件、修改配置文件等。

Stream Editor文本流编辑,sed是一个“非交互式的”面向字符流的编辑器。能同时处理多个文件

多行的内容

  • 可以不对原文件改动,把整个文件输出到屏幕

  • 可以把匹配到的内容输出到屏幕上

  • 还可以对原文件改动,但是不会再屏幕上返回结果

sed 参数

sed [-hnV] [-e<script>] [-f<script文件>] [文本文件]

  • -e <script>或--expression=<script>以选项中指定的script来处理输入的文本文件。
  • -f<script文件>或--file=<script文件>以选项中指定的script文件来处理输入的文本文件。
  • -h或--help 显示帮助。
  • -n或--quiet或--silent仅显示script处理后的结果。
  • -V或--version显示版本信息。

sed 动作

可以理解为操作

  • a : 新增,a的后面可以接字串,新增字符串会在目前的下一行
  • c∶取代,c的后面可以接字串,这些字串可以取代n1,n2之间的行
  • d : 删除,因为是删除,所以d通常写在最后
  • i : 插入,i的后面可以接字串,新增字串会在目前的上一行
  • p : 打印,将某个选择的数据显示出。通常p会与参数sed -n一起运行
  • s : 替换,可以直接进行替换。通常这个s 的动作可以搭配正则表示。例如1,20s/old/new/g(是不是和vim的替换很像?)

在文件中添加第三行,内容为hello

sed -e '2a hello world' sed.test

删除行,删除2到3行

cat -n sed.test | sed -e '2,3d'

删除包含22222的行

cat sed.test | sed '/22222/d'

替换行

将1-2行替换为hahaha

cat -n sed.test | sed '1,2c hahaha'

查找并替换字符串

将示例文本的中Hello换成Haha

sed 's\hello\haha\g' sed.test

前面的一系列操作,只是在屏幕上按要求输出了内容,而文件本身并没有改变

sed也可以用于文件自身的修改。但这样操作非常危险,有可能误操作将文件改坏,所以我们要在有充足把握的情况下才能这样使用

结合-i和查找替换即可修改文件,上例中加-i即可

awk

awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。它支持用户自定义函数和动态正

则表达式等功能,是linux/unix下的一个强大编程工具。awk命名来自于三位创始人Alfred Aho,

Peter Weinberger,和BrianKernighan的Family Name的首字符。

awk格式

命令行格式:

awk [选项参数] 'script var=value file(s)

awk 内嵌参数

内置变量1:

$0:表示整个当前行

$1:每行第一个字段

内置变量2:

NR:每行的记录号,行号

NF:字段数量变量,字段总数

FILENAME:正在处理的文件名

分割,显示/etc/passwd的第一列,即用户名

cat /etc/passwd | awk -F : '{print $1}'

匹配某段字符

cat /etc/passwd | awk -F : '$1 ~ /oo/'

显示/etc/passwd的前五行,显示每行的行号、列数,以及该行完整的内容

head -n5 /etc/passwd | awk -F : '{print NR " " NF " " $0}'

条件操作匹配

cat /etc/passwd | awk -F : '$3=="0"'

这里操作符号可以用==、>.>= .< . <=. != 都是可行

和数字比较时,将数字要用双引号“”引起来,表示字符串,不加引号则表示数字

cat /etc/passwd | awk -F: "$3>="1000""

Linux正则表达式sed、awk相关推荐

  1. linux shell sed awk 命令(2)-awk

    linux shell sed awk 命令(2)-awk awk语法格式: awk [选项] -f program-file [ -- ] file ... 选项: -F fs, --field-s ...

  2. linux grep sed awk

    linux 文本编辑命令grep sed awk(转)     grep grep (global search regular expression(RE) and print out the li ...

  3. 【Linux】 sed AWK

    文章目录 sed AWK 与 Vim的区别 sed sed的替换命令 sed 替换加强版 全局替换 标志位 寻址替换 分组 脚本文件 其他命令 删除 追加插入 和更改 rw 文件 行号 打印 p p ...

  4. linux正则表达式sed

    sed.awk工具可以实现文本替换并且把替换的文本输出到屏幕上 sed和awk都是流式编辑器,是针对文档的行来操作的.sed通常用来替换操作. 示例的文本内容,以下操作根据此文本. 1 2 3 4 5 ...

  5. grep 正则表达式 sed awk expect

    今日内容 grep : 过滤 sed :非交互式编辑文本 awk :格式化处理有规律的文本 expect : expect帮忙处理交互 三剑客命令的共性 : 1. 都支持正则表达式 2. 都支持管道 ...

  6. linux sed 正则提取字符串,linux正则表达式sed

    sed.awk工具可以实现文本替换并且把替换的文本输出到屏幕上 sed和awk都是流式编辑器,是针对文档的行来操作的.sed通常用来替换操作. 示例的文本内容,以下操作根据此文本.[root@yong ...

  7. Linux shell sed awk

    1.我们的平台编译kernel的时候总是要输入项目名称,很麻烦 ################################################ ## Compile kernel a ...

  8. Linux正则表达式和文本处理工具(gred、awk、sed)

    使用Linux 的 gred.awk.sed 可以方便得处理文本,然而若要灵活使用这三个工具,首先必须理解正则表达式.这里先对正则表达式进行学习,做点记录,之后再练习一下文本处理工具的使用. 正则表达 ...

  9. Linux正则表达式、grep、sed、awk简单使用

    文章目录 正则表达式 元字符 扩展元字符 POSIX字符类补充 使用案例 grep grep的正则表达式 grep使用案例 sed sed使用详解 sed使用方法 sed命令 sed和正则表达式 基本 ...

最新文章

  1. Sciences:用膳食纤维钓出15株缓解糖尿病的细菌!
  2. RabbitMQ 入门
  3. [转]C#遍历局域网的几种方法及比较
  4. java 面向对象 小练习
  5. 怎样禁用计算机里的防病毒程序,Windows Defender防病毒程序已在Windows 10上完全永久禁用...
  6. 05 Diagnostics 诊断
  7. java xml字符串提取元素,如何从Java中将子元素从XML提取到字符串?
  8. Linux中shell变量基础概念笔记
  9. python gdb coredump_Linux段错误及GDB Coredump调试方法
  10. 高低压配电柜温度在线监测系统解决方案
  11. excel表格数字显示不全_Excel表格中输入数字最后几位数变成0的解决方法
  12. 【数据分析】快速获取微博用户数据,图片,视频
  13. 柔性电子 压力传感器 strain-pressure sensor MoS2/graphene
  14. python抢票脚本github_春运买不到票?程序员喊你来GitHub上用抢票神器!
  15. ROMS四维变分测试
  16. R语言置信区间计算(confidence interval)、计算比例值对应的置信区间、为比例值构建95%执行区间、使用glue包把最终结果以标准格式输出
  17. 蓝蓝算法06--输出链表中倒数第k个结点
  18. python英文文本词频统计_python实现简单的英文词频统计
  19. 支付宝网银支付逻辑介绍
  20. 关于RM1135/RTS5735主控固态SSD开卡量产工具的使用简介

热门文章

  1. 手把手教你如何用飞桨自动生成二次元人物头像
  2. Kubernetes详解(五十三)——Kubernetes Role创建和Rolebinding
  3. 关于图像快速缩放算法,目前看到的最好的最清晰的一篇文章
  4. c语言利息计算编程,C语言中的求利息编程?
  5. OSChina 周四乱弹 —— 二次元世界很不安全
  6. pyqt5 显示摄像头画面
  7. 好和弦-3-伴奏入门
  8. [Linux] 压缩、解压文件夹命令
  9. AI真的能取代设计师吗?
  10. access中的android sdk,Android Studio报错unable to access android sdk add-on list解决方案