liunx系统sed命令使用
增
sed '$行数i 新增内容' 文件名在文件里某行上面新增内容
sed '$行数a 新增内容' 文件名在文件里某行下面新增内容
-i.bak对源文件进行修改并备份修改之前源文件
#在文件里第5行上面插入cccccc内容
[root@VM-Project_Test /project]# sed '5i cccccc' note_txt
1
2
3
4
cccccc
5
6
7
8
9
10
#在文件里第5行下面插入cccccc内容
[root@VM-Project_Test /project]# sed '5a cccccc' note_txt
1
2
3
4
5
cccccc
6
7
8
9
10
#在文件里2行到5行下面插入cccccc内容
[root@VM-Project_Test /project]# sed '2,5a cccccc' note_txt
1
2
cccccc
3
cccccc
4
cccccc
5
cccccc
6
7
8
9
10
删
sed 'd' 文件名指定删除文件里某行内容-i.bak对源文件进行修改并备份修改之前源文件
#删除文件里全部内容
[root@VM-Project_Test /project]# sed 'd' note_txt
#删除文件里第一行内容
[root@VM-Project_Test /project]# sed '1d' note_txt
2
3
4
5
6
7
8
9
10
#删除文件里第3行到7行内容
[root@VM-Project_Test /project]# sed '3,7d' note_txt
1
2
8
9
10
#删除文件里第二行和第8行内容
[root@VM-Project_Test /project]# sed '2d;8d' note_txt
1
3
4
5
6
7
9
10
#删除文本里最后一行内容
[root@VM-Project_Test /project]# sed '$d' note_txt
1
2
3
4
5
6
7
8
9
改
sed '内容行数s#需替换的内容#替换的新内容#' 文件名替换文件中内容-i对源文件进行修改
sed -i.bak'内容行数s#需替换的内容#替换的新内容#' 文件名对源文件进行修改自动备份修改之前内容
[root@VM-Project_Test /project]# cat note_txt
1
2
3
4
hjdkfds5nmxcvlm
6
7
8
9
10
#在文件里第5行行首插入11111内容
[root@VM-Project_Test /project]# sed '5s#^#11111#' note_txt
1
2
3
4
11111hjdkfds5nmxcvlm
6
#在文件里第5行行尾插入22222内容
[root@VM-Project_Test /project]# sed '5s#$#22222#' note_txt
1
2
3
4
hjdkfds5nmxcvlm22222
6
#在文件里5行到7行行尾插入22222
[root@VM-Project_Test /project]# sed '5,7s#$#22222#' note_txt
1
2
3
4
hjdkfds5nmxcvlm22222
622222
722222
8
#对文件里第5行里的ds5n替换成0000
[root@VM-Project_Test /project]# cat note_txt
1
2
3
4
hjdkfds5nmxcvlm
6
[root@VM-Project_Test /project]# sed '5s#ds5n#0000#' note_txt
1
2
3
4
hjdkf0000mxcvlm
6
查
sed -n '文本行数p' 文件名读取文件里内容-n默认输出内容到当前屏幕
#读取文件里第三行内容
[root@VM-Project_Test /project]# sed -n '3p' note_txt
3
#读取文件里第三行和第七行内容
[root@VM-Project_Test /project]# sed -n '3p;7p' note_txt
3
7
#读取文件里第三行到第七行内容
[root@VM-Project_Test /project]# sed -n '3,7p' note_txt
3
4
5
6
7
#读取文件里最后一行内容
[root@VM-Project_Test /project]# sed -n '$p' note_txt
10
#读取文件里第三行到最后一行内容
[root@VM-Project_Test /project]# sed -n '7,$p' note_txt
7
8
9
10
扩展正则反向引用
扩展正则
sed -r把所有我需要的内容对两边进行过滤控制,把所需要的内容控制在
(.*)里进行反向引用一个
(.*)就是一个分组里的内容\1就是取几个分组里的内容\0之前全部内容
#sed反向引用取主机IP
[root@VM-Project_Test /project]# cat test
flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ip add inet 192.168.100.102 netmask 255.255.252.0 broadcast 10.0.19.255
inet6 fe80::5054:ff:fe2e:261c prefixlen 64 scopeid 0x20<link>
ether 52:54:00:2e:26:1c txqueuelen 1000 (Ethernet)
RX packets 156078 bytes 105983697 (101.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 93268 bytes 14552098 (13.8 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@VM-Project_Test /project]# cat test|sed -n '2p' | sed -r 's#(.*).*inet(.*)netmask(.*)#\1#'
ip add
[root@VM-Project_Test /project]# cat test|sed -n '2p' | sed -r 's#(.*).*inet(.*)netmask(.*)#\2#'
192.168.100.102
[root@VM-Project_Test /project]# cat test|sed -n '2p' | sed -r 's#(.*).*inet(.*)netmask(.*)#\3#'
255.255.252.0 broadcast 10.0.19.255
[root@VM-Project_Test /project]# cat test|sed -n '2p' | sed -r 's#(.*).*inet(.*)netmask(.*)#\3#'
举例:
某目录下有多个图片文件名字需要进行修改把所有图片文件名字中的finished给去掉修改位如
stu_10086_3.jpg
[root@VM-Project_Test /project]# ls
stu_10086_1_finished.jpg stu_10086_3_finished.jpg stu_10086_5_finished.jpg stu_10086_7_finished.jpg
stu_10086_2_finished.jpg stu_10086_4_finished.jpg stu_10086_6_finished.jpg stu_10086_8_finished.jpg
#先模糊查找出所需要修改的文件
[root@VM-Project_Test /project]# find /project -name "*_finished.jpg"
/project/stu_10086_8_finished.jpg
/project/stu_10086_6_finished.jpg
/project/stu_10086_3_finished.jpg
/project/stu_10086_2_finished.jpg
/project/stu_10086_1_finished.jpg
/project/stu_10086_7_finished.jpg
/project/stu_10086_4_finished.jpg
/project/stu_10086_5_finished.jpg
#sed替换反向引用过滤单取第一个组里的内容
[root@VM-Project_Test /project]# find /project -name "*_finished.jpg"|sed -r 's#(.*)_finished(.*)#\1#'
/project/stu_10086_8
/project/stu_10086_6
/project/stu_10086_3
/project/stu_10086_2
/project/stu_10086_1
/project/stu_10086_7
/project/stu_10086_4
/project/stu_10086_5
#sed替换反向引用过滤单取第二个组里的内容
[root@VM-Project_Test /project]# find /project -name "*_finished.jpg"|sed -r 's#(.*)_finished(.*)#\2#'
.jpg
.jpg
.jpg
.jpg
.jpg
.jpg
.jpg
.jpg
#sed替换反向引用过滤取第一个和二个组里的内容
[root@VM-Project_Test /project]# find /project -name "*_finished.jpg"|sed -r 's#(.*)_finished(.*)#\1\2#'
/project/stu_10086_8.jpg
/project/stu_10086_6.jpg
/project/stu_10086_3.jpg
/project/stu_10086_2.jpg
/project/stu_10086_1.jpg
/project/stu_10086_7.jpg
/project/stu_10086_4.jpg
/project/stu_10086_5.jpg
#\0取所有
[root@VM-Project_Test /project]# find /project -name "*_finished.jpg"|sed -r 's#(.*)_finished(.*)#\0 \1\2#'
/project/stu_10086_8_finished.jpg /project/stu_10086_8.jpg
/project/stu_10086_6_finished.jpg /project/stu_10086_6.jpg
/project/stu_10086_3_finished.jpg /project/stu_10086_3.jpg
/project/stu_10086_2_finished.jpg /project/stu_10086_2.jpg
/project/stu_10086_1_finished.jpg /project/stu_10086_1.jpg
/project/stu_10086_7_finished.jpg /project/stu_10086_7.jpg
/project/stu_10086_4_finished.jpg /project/stu_10086_4.jpg
/project/stu_10086_5_finished.jpg /project/stu_10086_5.jpg
#sed替换反向引用过滤取组里的内容和所有内容进行移动改名
[root@VM-Project_Test /project]# find /project -name "*_finished.jpg"|sed -r 's#(.*)_finished(.*)#mv \0 \1\2#'
mv /project/stu_10086_8_finished.jpg /project/stu_10086_8.jpg
mv /project/stu_10086_6_finished.jpg /project/stu_10086_6.jpg
mv /project/stu_10086_3_finished.jpg /project/stu_10086_3.jpg
mv /project/stu_10086_2_finished.jpg /project/stu_10086_2.jpg
mv /project/stu_10086_1_finished.jpg /project/stu_10086_1.jpg
mv /project/stu_10086_7_finished.jpg /project/stu_10086_7.jpg
mv /project/stu_10086_4_finished.jpg /project/stu_10086_4.jpg
mv /project/stu_10086_5_finished.jpg /project/stu_10086_5.jpg
[root@VM-Project_Test /project]# find /project -name "*_finished.jpg"|sed -r 's#(.*)_finished(.*)#mv \0 \1\2#'|bash
[root@VM-Project_Test /project]# ls
stu_10086_1.jpg stu_10086_3.jpg stu_10086_5.jpg stu_10086_7.jpg
stu_10086_2.jpg stu_10086_4.jpg stu_10086_6.jpg stu_10086_8.jpg
liunx系统sed命令使用的更多相关文章
- Linux系统sed命令常用参数实战
Linux系统sed命令常用参数实战 常用参数 -n 输出某行的文本内容,通常与p联合使用, -e 命令行模式下进行sed的动作编辑,输出编辑后的内容,源文件不会发生变化 -f 以命令中指定的scri ...
- Linux系统——sed命令
sed命令精讲 cat工作原理 cat命令只想文件,把文件打开后,将文件中所有内容一次性读到内存中,从内存里一次性输出到屏幕上,此时可能存在内存装不下的情况,因此cat命令只能查看小文件内容,不能读取 ...
- liunx系统top命令详解
ps: 1.按1可以进行 CPU各个和总CPU汇总的切换2.cpu0是最关键的,总控管理各个CPU 3.默认情况下仅显示比较重要的 PID.USER.PR.NI.VIRT.RES.SHR.S.%CPU ...
- Liunx运维(十二)-Liunx系统常用内置命令
文档目录: 一.Liunx内置命令概述 二.LIunx常用内置命令实例 1.help查看内置命令帮助2.查看内置命令使用方法3.":" 占位符4. "." 与s ...
- 【linux系统】命令学习(六)awk sed grep 与管道的使用
程序运行环境输入与输出 标准输入0 read a;echo $a 标准输出1 echo cesh 错误输出 ls notr 管道重定向 管道与管道之间可以重定向 管道与文件之间可以重定向 用于写入 将 ...
- linux shell 用sed命令在文本的行尾或行首添加字符
转自 http://www.cnblogs.com/aaronwxb/archive/2011/08/19/2145364.html 昨天写一个脚本花了一天的2/3的时间,而且大部分时间都耗在了sed ...
- 【转】sed命令详解
原文:http://www.cnblogs.com/emanlee/archive/2013/09/07/3307642.html sed命令行格式为: sed [-nefri] 'command' ...
- Liunx系统学习一,liunx系统的目录结构及含义
LIUNX系统目录结构: “/” ===>这是linux文件系统的入口,也是整个linux文件系统的根目录,linux不同于windows,没有所谓的C,D,E盘,整个liunx只有一个根分区 ...
- Linux实战教学笔记12:linux三剑客之sed命令精讲
第十二节 linux三剑客之sed命令精讲 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,前言 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件 ...
- sed命令基础2
我在sed命令基础里面说了一下sed的基础用法,sed还有一些高级用法,由于我也是在学习中,写的博客可能会有想不到的地方,有问题希望大家指出. sed的高级用法主要在于两个空间的使用,模式空间和保持空 ...
随机推荐
- Django视图与网址进阶
1. 采用/add/?a=4&b=5这样get方法进行 1)修改learn/views.py文件 代码: #增加新函数 def add(request): a=request.GET['a'] ...
- Linux 主机磁盘繁忙度监控实战shell脚本
Linux 磁盘繁忙度是指磁盘的使用率和活动水平.可以通过一些工具来监测磁盘繁忙度,如 iostat.iotop.sar 等. 其中,iostat 是一个常用的工具,可以提供关于磁盘活动的详细统计信息 ...
- 利用BGP Anycast 实现DNS 服务的高可用测试
一.背景 根据当前某公司内部生产系统容器平台架构设计,在各生产线边缘机房部署容器平台,与数据中心容器平台形成纵向冗余,在此情况下,传统部署在数据中心机房的DNS系统成为容器平台业务服务的短板, ...
- Node学习第一步 | 简介及安装
什么是node Javascript可以在浏览器运行, node可以让javascript在浏览器之外运行 可以用来做本地运行的软件/网络服务器/游戏等等 记得安装vs code里面力扣插件需要先安装 ...
- antd/fusion表格增加圈选复制功能
背景介绍 我们存在着大量在PC页面通过表格看数据业务场景,表格又分为两种,一种是 antd / fusion 这种基于 dom 元素的表格,另一种是通过 canvas 绘制的类似 excel 的表格. ...
- Linux平台Oracle 23c单实例 安装部署配置 快速参考
转眼间已经2023年,再有一周就要过年了,在这里先给大家拜个早年,祝大家新的一年万事顺利. Oracle如今版本号也和年份挂钩,在前段时间的OCW上也宣布发布了beta版本的23c,因为23c是继19 ...
- 利用SpringBoot项目做一个Mock挡板;基于事件发布动态自定义URL和响应报文
导入SpringbootWEb依赖 <!--web项目驱动--> <dependency> <groupId>org.springframework.boot< ...
- 洛谷题解 | AT_abc321_c Primes on Interval
目录 题目翻译 题目描述 输入格式 输出格式 样例 #1 样例输入 #1 样例输出 #1 样例 #2 样例输入 #2 样例输出 #2 样例 #3 样例输入 #3 样例输出 #3 题目简化 题目思路 A ...
- Python面向对象——反射(hasattr、getattr、setattr、delattr)、内置方法(__str__和__del__)、元类(介绍,创建类的流程,exec,自定义元类)、属性查找
文章目录 反射 内置方法 __str__方法 __del__函数 元类 元类介绍 class关键字创建类的流程分析 补充:exec的用法 自定义元类控制类StanfordTeacher的创建 自定义元 ...
- 基于 Python 和 Vue 的在线评测系统
基于 Docker,真正一键部署 前后端分离,模块化编程,微服务 ACM/OI 两种比赛模式.实时/非实时评判 任意选择 丰富的可视化图表,一图胜千言 支持 Template Problem,可以添加 ...