文本三剑客&正则表达式2

这篇具有很好参考价值的文章主要介绍了文本三剑客&正则表达式2。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

文本三剑客&正则表达式2

1 sed

主要是对文件内容按照行的方式进行增删改查

工作流程

sed的工作流程主要包括**读取、执行和显示**三个过程
文本三剑客&正则表达式2

  • 读取

    • sed从输入流 (文件、管道、标准输入) 中读取一行内容并存储到临时的缓冲区中(又称模式空间,pattern space )
  • 执行

    • 默认情况下,所有的sed命令都在模式空间中顺序地执行,除非指定了行的地址,否则sed命令将会在所有的行上依次执行
  • 显示

    • 发送修改后的内容到输出流
    • 在发送数据后,模式空间将会被清空在所有的文件内容都被处理完成之前,上述过程将重复执行,直至所有内容被处理完

注意:默认情况下所有的sed命令都是在模式空间内执行的

因此**输入的文件并不会发生任何变化,除非使用"sed -i"修改源文件**、或使用重定向输出到新的文件中

2 sed命令的常用选项

-e 或–expression= 表示用指定命令来处理输入的文本文件,只有一个操作命令时可省略,一般在执行多个操作命令使用

-f 或–file= 表示用指定的脚本文件来处理输入的文本文件。

-h 或–help显示帮助。

-i 直接修改目标文本文件

-n 仅显示script处理后的结果

3 sed命令的操作符

操作符 作用
s 替换指定字符
d 删除选定的行
a 在当前行下面增加一行指定内容
i 在选定行上面插入一行指定内容
c 将选定行替换为指定内容
y 字符转换,转换前后的字符长度必须相同
p 打印,如果同时指定行,表示打印指定行;如果不指定行,则表示打印所有内容;如果有非打印字符,则以 ASCII 码输出 其通常与“-n”选项一起使用
= 打印行号
l 打印数据流中的文本和不可打印的ASCII字符,比如结束符$、制表符\t

4 打印

4.1 按照行号寻址打印

sed有一个默认输出,加上P,会打印两遍,因此需要加上-n,禁止默认输出
文本三剑客&正则表达式2
文本三剑客&正则表达式2

4.1.1 只打印第二行

文本三剑客&正则表达式2

4.1.2 只显示行号

文本三剑客&正则表达式2

4.1.3 显示行号及内容

文本三剑客&正则表达式2

4.1.4 只打印最后一行

文本三剑客&正则表达式2


4.2 进行行号范围区间的打印

4.2.1 打印1-3行

文本三剑客&正则表达式2

4.2.2 打印第二行到最后一行

文本三剑客&正则表达式2

4.2.3 打印2-4行

文本三剑客&正则表达式2

4.3 指定间隔打印

文本三剑客&正则表达式2

4.3.1 打印第二行和最后一行

文本三剑客&正则表达式2

4.4 对奇数行和偶数行的打印

4.4.1 打印偶数行(n:跳过第一行,打印第二行)

文本三剑客&正则表达式2

4.4.2 打印奇数行(n:打印第一行,跳过下一行,继续打印)

文本三剑客&正则表达式2


4.4 文本模式过滤行内容

4.4.1 对包含的字符串进行过滤打印

打印包含a的所有行
文本三剑客&正则表达式2

4.5应用基础正则表达式进行打印

4.5.1 打印以root开头的行

文本三剑客&正则表达式2

4.5.2 打印以bash结尾的行

文本三剑客&正则表达式2

4.5.3 从第四行开始,一直打印到第一个以bash为结尾的所在行

文本三剑客&正则表达式2

4.6 使用扩展正则表达式进行打印

sed -r 支持扩展正则表达式

同时在 使用{n}、{n,}、{n,m}时,括号{}前不需要加反斜杠\

包含有两个99:的内容所在行
文本三剑客&正则表达式2

5 删除

5.1 通过行号进行删除

5.1.1 删除所有,什么也不打印

文本三剑客&正则表达式2

5.1.2 只删除第三行

文本三剑客&正则表达式2

5.1.3 删除2-4行

文本三剑客&正则表达式2

5.1.4 删除第2行到最后一行

文本三剑客&正则表达式2

5.1.5 除了2-4行,别的都删除

文本三剑客&正则表达式2

5.2 匹配字符串内容删除

5.2.1 删除包含111的行

文本三剑客&正则表达式2

5.2.2 删除包含111和222的行

文本三剑客&正则表达式2

5.2.3 除了111和222,别的行都删了

文本三剑客&正则表达式2

5.2.4 字符串搭配正则进行删除

5.3 删除空行

  • 删除空行的三种方法
    文本三剑客&正则表达式2
grep -v "^$" test1.txt 		----过滤出非空行

cat test1.txt |tr -s "\n" 	----压缩换行符

sed '/^$/d' test1.txt 		----删除空行

6 替换

s:替换字符串(替换内容长度可不一致)

c:整行替换

y:字符替换,替换前后的字符串长度必须相同

6.1 指定第二个root,替换为了test

文本三剑客&正则表达式2

6.2 把所有的root改成test

文本三剑客&正则表达式2

6.3 把root开头的空格替换成#注释掉

文本三剑客&正则表达式2

6.4 把大写改成小写

l&是转换小写的一种特殊的符号,前面要加转义符“\”
文本三剑客&正则表达式2

6.5 把小写改成大写

u&是转换首字母大写的一种特殊的符号,前面要加转义符“\”
文本三剑客&正则表达式2

6.6 把有aaa的行全部整行替换成qzz

文本三剑客&正则表达式2

6.7 把单字符a和6分别替换成q和z

文本三剑客&正则表达式2


7 增加

a:在下一行添加内容

i:在上一行插入内容

r:在行后读入文件内容

7.1 在111这行下面插入three

文本三剑客&正则表达式2

7.2 在333的前一行插入four

文本三剑客&正则表达式2

7.3 先读取test1里面的内容,把他插入到test2的行后

文本三剑客&正则表达式2

7.4 sed命令中字符串和字符的位置交换

文本三剑客&正则表达式2文本三剑客&正则表达式2文章来源地址https://www.toymoban.com/news/detail-447232.html

到了这里,关于文本三剑客&正则表达式2的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • linux中shell脚本——shell数组、正则表达式及文件三剑客之AWK

    目录 一.shell数组 1.1.数组分类 1.2.定义数组方法 二.正则表达式 2.1.元字符 2.2.表示次数 2.3.位置锚定 2.4.分组 2.5.扩展正则表达式 三.文本三剑客之AWK 3.1.awk介绍及使用格式 3.2.处理动作 3.3.awk选项 3.4.awk处理模式 2.5.awk常见的内置变量  2.6.if条件判断 1.1.数组分类 ①关联数组:必

    2024年02月12日
    浏览(31)
  • linux文本三剑客

    过滤/查找 参数 用法 作用 -i grep -i STRING xxx.txt 从xxx.txt文件查找不区分大小写STRING -w grep -w STRING xxx.txt 精确匹配STRING -e grep -e STRING1 -e STRING2 xxx.txt 查找多个STRING行 -n grep -n STRING xxx.txt 查看STRING 在第几行 -v grep -v STRING xxx.txt 输出不包含STRING的行 -r grep -r STRING DIR/ 查找DIR目录下哪

    2024年02月11日
    浏览(31)
  • 文本三剑客之 awk

    Linux/UNIX 系统中,awk 是一个功能强大的编辑工具。逐行读取输入文本 以空格作为分割符,多个空格他会自动压缩成一个空格 AWK信息的读入也是逐行指定的匹配模式进行查找,对符合条件的内容进行格式化输出或者过滤处理. 1按照命令找指定的行  2.找到的行 打印,操作 awk

    2024年02月08日
    浏览(29)
  • linux文本三剑客详解

    awk、grep、sed是linux操作文本的三大利器,合称文本三剑客。 特点: grep——单纯的查找或匹配文本。 sed——编辑匹配到的文本。 awk——格式化文本,对文本进行较复杂格式处理。 首先了解一下正则表达式: 匹配字符  配置次数  位置锚定:定位出现的位置   实例介绍:

    2024年04月16日
    浏览(24)
  • Linux文本三剑客---awk

    Linux文本三剑客之一(grep,sed,awk),功能最强大的文本工具。 逐行读取输入的文本内容,默认以空格和tab键作为分隔符。但是多个空格或者tab键的空格,会自动压缩成一个,然后按照指定的模式和条件执行编辑命令 可以在免交互的情况下,实现复杂的文本操作。完成自动化配

    2024年02月07日
    浏览(30)
  • 文本三剑客之~~~sed命令

    sed是一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。 sed编辑器可以根据命令来处理数据流中的数据,这些命令要么从命令行中输入,要么存储在一个命令文本文件中。 包括读取,执行和显示三个过程 读取:sed从输入流(文件,管道

    2024年02月05日
    浏览(30)
  • Linux:文本三剑客之awk

    awk:是一种 处理文本文件的语言 ,是一个强大的 文本分析工具 。 awk: 逐行读取文本 ,默认以 空格 或 tab键 为分隔符 进行分隔 ,将分隔所得的 各个字段 保存到 内建变量 中,并按模式或者条件执行编辑命令。 1、sed命令常用于一整行的处理,而awk比较 倾向于将一行分成

    2024年02月05日
    浏览(37)
  • 文本三剑客之sed编辑器

    Sed是一个强大的文本处理工具,其名称是Stream Editor(流编辑器)的缩写。它被设计用于根据用户定义的规则对文本进行逐行处理和转换。 Sed通过从输入流中逐行读取文本,并根据用户指定的命令来对每一行进行处理 sed的工作原理是 逐行读取 输入文本,并根据用户 指定的命

    2024年02月12日
    浏览(31)
  • Shell编程基础(十五)文本三剑客(sed)

    sed提供了一种免交互的方式修改文件内容。 它是一行一行处理,可以通过正则匹配要修改的部分 基本语法 sed [-opt] command files(多个文件 空格隔开) sed 使用扩展正则,不加r不能完全匹配扩展正则表达式 sed -r “正则匹配数据行/指定行号 sed命令” files sed 修改内容写回文件 默认

    2024年02月13日
    浏览(31)
  • Shell脚本攻略:文本三剑客之grep

    目录 一、理论 1.grep 2.sort 3.uniq 4.tr 5.cut 6.split 7.paste 二、实验 1. grep ​编辑 ​编辑 2.sort 3.uniq ​编辑 4.tr 5.cut 6.split 7.统计当前主机的连接状态 8.统计当前连接主机数 9.获取信息 (1)概念 grep是Linux中最常用的”文本处理工具”之一,grep与sed、awk合称为Linux中的三剑客。 grep的

    2024年02月07日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包