首页 > 其他分享 >文本三剑客

文本三剑客

时间:2024-06-21 14:57:26浏览次数:21  
标签:test3 txt ssed sed test 文本 root 三剑客

文本三剑客
sed awk grep

grep就是查找文本当中的内容,扩展正则表达式。

sed
sed是一种流编辑器,一次处理一行内容。
如果只是展示,会放到缓冲区(模式空间),展示结束之后,会从模式空间把操作结果删除
一行一行处理,当前行处理结束,才会处理下一行,知道文件末尾。
sed的命令格式和操作选项
sed -e '操作选项 ’ 文件1 文件2
-e 表示可以跟多个操作符,只有一个操作符,-e 可以省略。 表示指定操作。
sed -e ‘操作符1;操作符2’ 文件1 文件2
选项 :
-e:用于执行多个操作命令
-f: 在脚本中定义好了操作符,然后根据脚本内容的操作符对文件进行操作
-i:直接修改目标文件(慎用)
-n:仅显示script处理后的结果(不加-n,sed会有两个输出结果,加了-n之后就会吧默认输出屏蔽,只显示一个结果)

操作符:

p :打印结果
r :使用扩展正则表达式
s :替换,替换字符串
c :替换,替换行
y :替换,替换单个字符,多个字符替换必须和替换内容的字符长度保持一致
d :删除,删除行
a :增加,指定行的下面一行插入内容
$a:在最后一行插入新的内容
i :增加,在指定行的上面一行插入内容
$i : 在倒数第二行插入新的内容
r: 在行后增加文本内容
$r:读取其他文件的内容,然后插入到对象文件的最后一行

打印功能:

[root@test3 ssed]# #寻址打印
[root@test3 ssed]# sed -n '4p' test.txt 
e
[root@test3 ssed]# cat -n test.txt | sed -n '4p'
     4	e
[root@test3 ssed]# #打印最后一行
[root@test3 ssed]# sed -n '$p' test.txt 
[root@test3 ssed]# #行号范围打印
[root@test3 ssed]# sed -n '2,4p' test.txt   打印第二行到第四行
[root@test3 ssed]# sed -n '2,$p' test.txt     打印第2行到最后一行
[root@test3 ssed]# sed -n '2p;$p' test.txt    单独打印第二行和最后一行
[root@test3 ssed]# #打印奇数行和偶数行
[root@test3 ssed]# sed -n 'p;n'  test.txt #打印奇数行
[root@test3 ssed]# sed -n 'n;p'  test.txt  #打印偶数行
[root@test3 ssed]# sed -n '/o/p' test.txt  #过滤并打印包含o的行
[root@test3 ssed]# sed -n  -e '/a/p' -e '/o/p' test.txt    
[root@test3 ssed]# #使用正则表达式对文本内容进行过滤 
[root@test3 ssed]# sed -n '/^root/p' /etc/passwd    #打印以root开头的行
[root@test3 ssed]# sed -n '/bash$/p' /etc/passwd    #打印bash结尾的行
[root@test3 ssed]# sed -n '3,/bash$/p' /etc/passwd    #打印从第3行开始到以bash结尾的行

sed 使用扩展正则必须加r
[root@test3 ssed]# sed -rn '/(99:){2,}/p' /etc/passwd 
nobody:x:99:99:Nobody:/:/sbin/nologin

[root@test3 ssed]# #要么以root为开头,要么以bash结尾的行
[root@test3 ssed]# sed -rne '/^root|bash$/p'  /etc/passwd

[root@test3 ssed]# #sed的删除操作
[root@test3 ssed]# sed -n '3d;p' test.txt  #删除第三行打印其他的行
[root@test3 ssed]# sed -n '3d' test.txt    #删除第三行不打印其他行 

[root@test3 ssed]# sed -n '4d;6d;p' test.txt   #只删除第四行和第六行
[root@test3 ssed]# sed -n '4,6!d;p' test.txt   #删除第4行到第6行之外的行

[root@test3 ssed]# #匹配字符串删除行
[root@test3 ssed]# sed '/e/d' test.txt  # 删除包含e的行

[root@test3 ssed]# sed '/qqq/,/rrr/d' test.txt   # 删除包含qqq和rrr的行
[root@test3 ssed]# sed '/qqq/!d' test.txt      #删除除qqq以外的全部行

[root@test3 ssed]# #免交互 删除空行
[root@test3 ssed]# grep -v "^$" test.txt 
[root@test3 ssed]# cat test.txt  | tr -s "\n"
[root@test3 ssed]# sed '/^$/d' test.txt 


[root@test3 ssed]# #sed 替换 s c y
[root@test3 ssed]# #s 替换字符串
[root@test3 ssed]# sed -n 's/root/test/p' /etc/passwd    #将该文件中的每一行的第一个root替换为test
test:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/test:/sbin/nologin
[root@test3 ssed]# sed -n 's/root/test/gp' /etc/passwd    #将文件中的全部root字符替换成test
test:x:0:0:test:/test:/bin/bash
operator:x:11:0:operator:/test:/sbin/nologin
[root@test3 ssed]# sed -n 's/root/test/2p' /etc/passwd     #将该文件中的每一行的第二个root替换为test

[root@test3 ssed]# sed -n 's/^/#/p' test.txt    #文件内容全部注释
[root@test3 ssed]# sed -ne '4s/^/#/p' -e '6s/^/#/p'  test.txt  #注释第四行和第六行

[root@test3 ssed]# #替换字母大小写
[root@test3 ssed]# sed 's/[a-z]/\u&/'   test.txt     #首字母小写换大写
    u& 转换首字母换成大写的特殊模符号,\转义符。
[root@test3 ssed]# sed 's/[a-z]/\u&/g'   test.txt      #小写全部转化为大写


[root@test3 ssed]# sed 's/[A-Z]/\l&/' test.txt     #首字母大写换小写
[root@test3 ssed]# sed 's/[A-Z]/\l&/g' test.txt    #大写全部转化为小写
     l& 转换首字母换成小写的特殊模符号,\转义符。
 1135  #整行替换  c
 1136  sed '/qqq/c 6' test.txt 

[root@test3 ssed]# # y 单字符替换  多个字符替换必须和替换内容的字符长度保 持一致
[root@test3 ssed]# sed 'y/qqq/666/' test.txt 

[root@test3 ssed]# #  r  在行后增加文本内容 
[root@test3 ssed]# sed '/www/a  niupi666 ' test.txt    # a  在行下新增
[root@test3 ssed]# sed '/www/i  niupi666 ' test.txt    # i  在行上新增
[root@test3 ssed]# sed '/www/r  test1 ' test.txt       # r  读取文件新增到test.txt最后一行

[root@test3 ssed]# #使用sed对字符串和字符的位置进行互换。改变原字符的位置
[root@test3 ssed]# echo faguopaoche | sed -r 's/(faguo)(pao)(che)/\3\1\2/'  #分组之后字符串位置交换
chefaguopao
[root@test3 ssed]# echo 改变字符 |  sed -r 's/(.)(.)(.)(.)/\4\3\2\1/'
符字变改

sed -n 's/.*Version: \([0-9.]*\).*/\1/p' file.txt


sed 的主要作用:对文本的内容进行增删改查,强大的功能是改和增加

面试:

如何免交互删除文本内容,不删除文件

[root@test3 ssed]# #如何免交互删除文本内容
[root@test3 ssed]# sed -i 'd' test.txt      #清空文件内容不删除文件
[root@test3 ssed]# cat /dev/null > test.txt 
[root@test3 ssed]# echo " " > test.txt      # 假删除


[root@test3 ssed]# #免交互 删除空行
[root@test3 ssed]# grep -v "^$" test.txt 
[root@test3 ssed]# cat test.txt  | tr -s "\n"
[root@test3 ssed]# sed '/^$/d' test.txt 

笔试:
[root@test3 ssed]cat test1.txt | sed -r 's/(.*)-(.*)(\.jar)/\2/' 从文件中识别版本号
[root@test3 ssed]# sed -r 's/.*-([0-9.]+)\.jar/\1/'   test1.txt 



[root@test3 ssed]# tail -f /var/log/messages |  sed   -n  '/Jun 21 11:04:28/,/Jun 21 13:01:01/p'   #打印指定时间日志

标签:test3,txt,ssed,sed,test,文本,root,三剑客
From: https://blog.csdn.net/qq_52448810/article/details/139861372

相关文章

  • 24.3K star!一个轻量级且高度可配置的现代化命令行文本编辑器
    大家好,今天给大家分享的是一个轻量级且高度可配置的现代化命令行文本编辑器。micro是一个轻量级且高度可配置的命令行文本编辑器,以其简洁的设计和强大的插件系统著称。该项目强调速度与效率,适合那些追求快速编辑体验并希望保持系统资源占用低的用户。项目介绍micro旨在成为n......
  • Python 学习 第四册 第8章 结构化的文本文件
    ----用教授的方式学习。目录8.1结构化的文本文件8.1.1CSV8.1.2 XML8.1.3 JSON8.1.4 YAML8.1结构化的文本文件结构化的文本有很多格式,区别它们的方法如下所示。• 分隔符,比如 tab('\t')、逗号(',')或者竖线('|')。逗号分隔值(CSV)就是这样的例子。• '<' 和 '>' ......
  • 若依框架页面新增时,富文本加入图片保存时出现:JSON parse error: Unexpected character
    在使用若依框架的富文本框新增时,如果插入一个图片的时候会出现一个JSONparseerror:Unexpectedcharacter('/'(code47)):maybea(non-standard)comment?(notrecognizedasonesinceFeature'ALLOW_COMMENTS'notenabledforparser);nestedexceptioniscom.fas......
  • selenium框架学习之获取文本框内容和Xpath元素不唯一
    本周一直写创建简历的测试用例,由于元素和内容过多,只能把各个方法单独封装,然后在测试用例里面使用,以此优化用例。在封装的时候遇到的一些问题,和大家说下怎么解决~1. 获取文本框输入---新增了一个【输入微信号】的功能模块,需要同时测试点击【同手机】和输入文本的功能。于是......
  • webman admin 控件的使用 如何修改富文本控件的高度
    如何修改富文本控件的高度把控件类型为富文本的控件参数设置为height:300,则会生成一个300高度的tinymcetinymce.init({selector:'textarea',//changethisvalueaccordingtoyourHTMLheight:300});你也可以将其他的tinymce设置添加进这个控件参数当中,......
  • jquery文本操作、样式属性操作、效果学习
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document</title>......
  • Meta FAIR研究新成果:图像到文本、文本到音乐的生成模型,多标记预测模型以及AI生成语音
    MetaAI研究实验室(FAIR)公开发布了多项新研究成果,包括图像到文本和文本到音乐的生成模型,多词预测模型,以及检测AI生成语音的技术。发布的成果体现了开放性、协作、卓越和规模化等核心原则。公开早期研究工作旨在激发迭代,推动AI负责任发展。MetaChameleon系列模型可将文本......
  • Shell 编程之正则表达式与文本处理器
    Shell编程之正则表达式与文本处理器一、正则表达式基础正则表达式元字符总结二、文本处理器sed工具awk工具sort工具uniq工具tr工具三、总结在Shell编程中,正则表达式(RegularExpression)和文本处理器(如grep,sed,awk等)是两个极其重要的工具,它们允许我们以复杂......
  • React项目中使用轻量富文本编辑器
    React项目中使用轻量富文本编辑器安装npminstallreact-quill创建编辑器组件//src/MyQuillEditor.jsimportReact,{useState}from'react';importReactQuillfrom'react-quill';import'react-quill/dist/quill.snow.css';//引入样式constMyQuillEdi......
  • 初识Python————Python“三剑客“(适用初学者,了解概述,有官网)
        Python三剑客指的是Pandas、Numpy和Matplotilb这三个库,它们在数据分析领域扮演着核心角色。它们各自拥有独特的功能和优势,结合使用可以极大地提高数据分析的效率和准确性。一、NumpyNumPy是使用Python进行科学计算的基础包。它包含如下的内容:一个强大的N维数组......