当前位置: 首页 > news >正文

Linux学习之sed删除、追加、插入、更改、读写文件、下一行、打印、退出和seq命令

cat /etc/redhat-release看到操作系统是CentOS Linux release 7.6.1810uname -r看到内核版本是3.10.0-957.el7.x86_64sed --version可以看到sed版本是4.2.2
在这里插入图片描述

echo 'a : 1 : good : g' >> sed_daicpnrwq.txt
echo 'b : 2 : well : w' >> sed_daicpnrwq.txt
echo 'c : 3 : food : f' >> sed_daicpnrwq.txt
echo 'd : 4 : hood : h' >> sed_daicpnrwq.txt
echo 'e : 5 : bell : b' >> sed_daicpnrwq.txt
echo 'o : 6 : toll : t' >> sed_daicpnrwq.txt
echo '1 : a : good : g' >> sed_daicpnrwq.txt
echo '2 : b : well : s' >> sed_daicpnrwq.txt
echo '3 : c : food : f' >> sed_daicpnrwq.txt

把下边的内容:

a : 1 : good : g
b : 2 : well : w
c : 3 : food : f
d : 4 : hood : h
e : 5 : bell : b
o : 6 : toll : t
1 : a : good : g
2 : b : well : s
3 : c : food : f

写入到sed_daicpnrwq.txt里边。
在这里插入图片描述

删除

sed '/寻址/d' filename就是把匹配上的内容所在那行在模式空间删除,然后改变控制流。
sed '/^1/d' sed_daicpnrwq.txt把以1开头的一行删除了,但是没有把原文件里边的内容删除。
在这里插入图片描述

sed '/^1/d;s/a/#/g' sed_daicpnrwq.txt没有把删除的那一行中的a替换成#,说明改变了控制流。
在这里插入图片描述

sed '/^1/d;=' sed_daicpnrwq.txt把以1开头的一行删除了之后把行号输出在每行上边,没有把原文件里边的内容删除。
在这里插入图片描述
一般先进行其他操作,然后再进行删除操作。

追加

sed '/寻址/a\插入字符' filename在匹配上的内容下边一行追加,sed '/oo/a\%%%%%' sed_daicpnrwq.txt匹配上有oo的行,然后在匹配上的每行下边插入%%%%%
在这里插入图片描述

插入

sed '/寻址/i\插入字符' filename在匹配上的内容上边插入,sed '/ll/i\######' sed_daicpnrwq.txt匹配上有ll的行,然后在匹配上的每行上边插入######
在这里插入图片描述

更改

sed '/寻址/c\changestring' filename把匹配上的每行改写成changestring
sed '/well/c\testChange' sed_daicpnrwq.txt把匹配上的每行都改写成testChange
在这里插入图片描述

读写文件

echo "4 : d : got : g" >> sed_rfile.txt
echo "5 : e : foot : f" >> sed_rfile.txt

把下边的内容:

4 : d : got : g
5 : e : foot : f

写入到sed_rfile.txt
在这里插入图片描述

sed '/寻址/r file1' file2file2匹配的每行输出之后,把file2中的内容输出到匹配上的行之后。
sed '/good/r sed_rfile.txt' sed_daicpnrwq.txtsed_rfile.txt输出到sed_daicpnrwq.txt匹配到good的行之后。
在这里插入图片描述

下一行

sed '/good/n;/well/d' sed_daicpnrwq.txt可以转向 good匹配上的下一行删除well匹配上的一行,sed '/good/n;/good/d' sed_daicpnrwq.txt没有删除good匹配上的行,sed '/good/n;/food/d' sed_daicpnrwq.txt可以转向匹配good的下一边删除well匹配上的一行。
在这里插入图片描述

打印行号

sed '=' sed_daicpnrwq.txt可以打印行号。
在这里插入图片描述

打印

sed 'p' sed_daicpnrwq.txt把所有行都输出一遍。
在这里插入图片描述

sed '/^a/p' sed_daicpnrwq.txt把匹配上的行a : 1 : good : g输出。
在这里插入图片描述

seq

seq生成数字序列,-s是指定数字序列之间的分隔符。
seq 1 15能够生成115的数字序列。
在这里插入图片描述
seq -s "+" 1 15能够生成1+2+3+4+5+6+7+8+9+10+11+12+13+14+15的数字序列。
在这里插入图片描述

seq 5 -1 1能够生成从51数字序列,5是起始数字,-1是步长,即每次减一,1是结束数字。
在这里插入图片描述
seq -s "-" 5 -1 1能够生成5-4-3-2-1的数字序列。
在这里插入图片描述

退出

seq 1 10000 >> seq.txt生成110000的数字序列,然后写入到seq.txt,之后使用tail -n 10 seq.txt看一下最后10行的内容。
在这里插入图片描述

sed '10q' sed_daicpnrwq.txt只处理到第10行。
在这里插入图片描述

sed中,qp效率高。

此文章为8月Day 10学习笔记,内容来源于极客时间《Linux 实战技能 100 讲》。

http://www.lryc.cn/news/118154.html

相关文章:

  • JuiceFS 在多云存储架构中的应用 | 深势科技分享
  • 什么是DNS的缓存?
  • smtplib.SMTPHeloError: (500, b‘Error: bad syntax‘)
  • /proc directory in linux
  • 装饰器模式(C++)
  • matlab使用教程(12)—随机数种子和随机数流
  • 【Java】JVM GC配置指南
  • 11.Eclipse 注释模板的说明及设置
  • Maven父子工程项目的配置
  • jumpserver命令记录膨胀问题
  • ControlNet
  • 竞赛项目 深度学习图像风格迁移 - opencv python
  • ​Windows dos文件夹与文件怎么创建与删除
  • JVM总结2
  • servlet三大类HttpSevlet,HttpServletRequest,HttpServletResponse介绍
  • 【雕爷学编程】Arduino动手做(12)---霍尔模块之霍尔磁感应声光报警器(磁控开关,接220V)
  • 认识 SQL
  • 【剑指Offer 58】翻转单词顺序,Java解密。
  • 微服务Ribbon-负载均衡原理
  • 如何实现Vue的异步组件?如何在Vue中使用本地存储?什么是Vue的指令模块化?
  • 《HeadFirst设计模式(第二版)》第六章代码——命令模式
  • JS 原型与继承2
  • 账号登录相关的一点随笔
  • 常见的一些BUG
  • ChatGPT在智能社交网络分析和关系挖掘中的应用如何?
  • 你不了解的Dictionary和ConcurrentDictionary
  • c++类模板,嵌套类模板,模板链表,动态数组
  • 【Flutter】【基础】CustomPaint 绘画功能,绘制各种图形(二)
  • YOLOv5修改注意力机制CBAM
  • 计算机网络 网络层 概述