sed命令

目录

一、sed

1.sed命令选项

2.语法选项

3.sed脚本格式

4.搜索替代

5.分组后向引用

1.提取版本号:

2.提取IP地址

3.提取数字权限

6.变量

二、免交互

1.多行重定向

2.免交互脚本

总结:本章主要介绍了seq和免交互的用法及相关知识


一、sed

sed是行编辑器

sed [选项] '语法1' [input file]

1.sed命令选项

-n 不输出模式空间内容到屏幕(关闭自动打印)

-e 多点编辑

-f 从指定文件中读取编辑脚本

-r,-E 使用扩展正则表达式

-i.bak 备份文件并原处编辑(修改前会先备份文件)

-ir 不支持

-i -r 支持

-ri 支持

-ni 会清空未匹配的行

2.语法选项

p 打印

q 退出

d 删除

a 追加

c 替换

i 添加

w 第二行写入文件

= 显示行号

r 读取指定文件的文本至文件的行前

sed 会自动打印:

[root@localhost sy]# sed '' /etc/fstab#
# /etc/fstab
# Created by anaconda on Mon Oct  9 18:28:14 2023
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=c691f6ac-d1a0-46ad-b02b-7c6256963e6b /boot                   xfs     defaults        0 0
/dev/mapper/centos-home /home                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
[root@localhost sy]# 

sed支持重定向输入:

[root@localhost sy]# sed '' </etc/fstab#
# /etc/fstab
# Created by anaconda on Mon Oct  9 18:28:14 2023
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=c691f6ac-d1a0-46ad-b02b-7c6256963e6b /boot                   xfs     defaults        0 0
/dev/mapper/centos-home /home                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
[root@localhost sy]# 
3.sed脚本格式

#:指定的行,$:最后一行

#,# 从#行到#行

#,+# 从#行到+#行 如3,+4表示3,7行

/pat1/ ,/pat2/ 第一个正则表达式和第二个正则表达式之间的行

#,/pat/ 从#号行为开始找到pat为止

/pat/,# 找到#号个pat为止

步进~

1~2 奇数行

2~2 偶数行

sed -n 'n;p' 打印偶数行

sed -n 'p;n' 打印奇数行

sed不加-n会再打印一遍:

[root@localhost sy]# seq 10|sed 'p'
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
10
10
[root@localhost sy]# seq 10|sed -n 'p'
1
2
3
4
5
6
7
8
9
10
[root@localhost sy]# 

4.搜索替代

s/旧字符/新字符/修饰符 查找替换,支持使用其它分隔符,可以是其它形式如

s@@@或者s###

替换修饰符:

g 行内全局替换

p 显示替换成功的行

w /PATH/FILE 将替换成功的行保存至文件中

I,i 忽略大小写

5.分组后向引用

第一个(123)对应\1

第二个(abc)对应\2

第三个(xyz)对应\3

1.提取版本号:
[root@localhost ~]# cat nm|sed -nr 's/.*-(.*).jar/\1/p'
1.9.7
1.9.7
2.7.7
3.4
1.0
0.7.6
5.0.4
1.9.5
1.64
1.46
1.64
2.5.5
[root@localhost ~]# cat nm
ant-1.9.7.jar
ant-launcher-1.9.7.jar
antlr-2.7.7.jar
antlr-runtime-3.4.jar
aopalliance-1.0.jar
archaius-core-0.7.6.jar
asm-5.0.4.jar
aspectjweaver-1.9.5.jar
bcpkix-jdk15on-1.64.jar
bcprov-jdk15-1.46.jar
bcprov-jdk15on-1.64.jar
checker-compat-qual-2.5.5.jar

2.提取IP地址
[root@localhost ~]# ifconfig ens33|sed -nr 's/.*inet (.*)  netmask.*/\1/p'
172.16.114.10
[root@localhost ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 172.16.114.10  netmask 255.255.255.0  broadcast 172.16.114.255inet6 fe80::20c:29ff:fe5b:b87a  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:5b:b8:7a  txqueuelen 1000  (Ethernet)RX packets 69808  bytes 47124205 (44.9 MiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 59903  bytes 45306327 (43.2 MiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0[root@localhost ~]# 

3.提取数字权限
[root@localhost ~]# stat nm|sed -nr '4s/.*([0-7]{4}).*/\1/p'
0644
[root@localhost ~]# stat nm文件:"nm"大小:257       	块:8          IO 块:4096   普通文件
设备:fd00h/64768d	Inode:100793031   硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2023-11-28 18:39:47.041303261 +0800
最近更改:2023-11-28 18:38:29.647928413 +0800
最近改动:2023-11-28 18:38:29.647928413 +0800
创建时间:-
[root@localhost ~]# 

6.变量
[root@localhost ~]# name=root
[root@localhost ~]# sed -nr '/$name/p' /etc/passwd
[root@localhost ~]# head -n2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@localhost ~]# sed -nr "/$name/p" /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]# sed -nr '/'$name'/p' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

二、免交互

1.多行重定向

eof开始(小写大写都可以)

eof结束(小写大写都可以)

[root@localhost ~]# cat <<eof
> sdk
> sdmpsvo
> sdvlm
> eof
sdk
sdmpsvo
sdvlm
[root@localhost ~]#

[root@localhost ~]# cat >123 <<EOF
> kdsvn
> fdlm
> fmdk
> ddmfkv
> EOF
[root@localhost ~]# cat 123
kdsvn
fdlm
fmdk
ddmfkv
[root@localhost ~]# 

[root@localhost ~]# tee /opt/mysql.repo <<eof
> [al]
> name=al
> baseurl=file:///mnt
> gpgcheck 0
> eof
[al]
name=al
baseurl=file:///mnt
gpgcheck 0
[root@localhost ~]# cat /opt/mysql.repo
[al]
name=al
baseurl=file:///mnt
gpgcheck 0
[root@localhost ~]# 

2.免交互脚本

1.expect 在/usr/bin/expect

#!/usr/bin/expect

2.spawn (开启免交互)[命令]

expect 捕捉屏幕上的关键字

exp_continue 继续捕捉屏幕上的字

send 发送指令

interact 代表退出expect 会留在新的终端

expect eof 代表结束

[root@localhost ~]# vim jc
[root@localhost ~]# chmod +x jc
[root@localhost ~]# ./jc
spawn ssh 172.16.114.20
root@172.16.114.20's password: 
Last login: Tue Nov 28 19:39:01 2023 from 172.16.114.10
[root@localhost ~]# exit
登出
Connection to 172.16.114.20 closed.

#!/usr/bin/expect
spawn ssh 172.16.114.20
expect {"yes/no" { send "yes\n";exp_continue }"password" { send "123\n" }
}
interact

总结:本章主要介绍了seq和免交互的用法及相关知识

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/226397.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过网易的API完成一个简易的音乐播放器

效果图 工程环境 1、使用node在本地部署网易云音乐API接口 下载解压 链接:https://pan.baidu.com/s/1YQiMJoUMEYlMz14FH5xxRA?pwd36o5 提取码:36o5 工程目录概览 &#xff08;js文件夹里面放了music.html和main.js和vue.js&#xff09; 工程目录)&#xff08;有点重复…

Boot工程快速启动【Linux】

Boot工程快速启动【Linux】 在idea中打包cd usr/在local文件夹下mkdir app进入app文件夹把打包好的文件&#xff08;只上传其中的jar&#xff09;上传到app文件下检查linux中的Java版本&#xff0c;保证和项目的Java 版本保持一致运行 java -jar sp补全***.jar想看效果得查询当…

MySQL进阶-InnoDB引擎

✨作者&#xff1a;猫十二懿 ❤️‍&#x1f525;账号&#xff1a;CSDN 、掘金 、语雀 、Github &#x1f389;公众号&#xff1a;猫十二懿 一、InnoDB 逻辑存储引擎 InnoDB的逻辑存储结构如下图所示&#xff1a; 大小关系&#xff1a;表空间&#xff08;Tablespace&#xff0…

【攻防世界-misc】Encode

1.下载解压文件&#xff0c;打开这个内容有些疑似ROT13加密&#xff0c;利用在线工具解密&#xff1a;ROT13解码计算器 - 计算专家 得到了解密后的值 得到解码结果后&#xff0c;看到是由数字和字母组成&#xff0c;再根据题目描述为套娃&#xff0c;猜测为base编码&#xff08…

【小布_ORACLE】Part11-1--RMAN Backups笔记

Oracle的数据备份于恢复RMAN Backups 学习第11章需要掌握&#xff1a; 一.RMAN的备份类型 二.使用backup命令创建备份集 三.创建备份文件 四.备份归档日志文件 五.使用RMAN的copy命令创建镜像拷贝 文章目录 Oracle的数据备份于恢复RMAN Backups1.RMAN Backup Concepts&#x…

TiDB 7.x 源码编译之 TiDB Server 篇,及新特性详解

本文将介绍如何编译 TiDB Server 源码。以及阐释 TiDB Server 7.x 的部分新特性。 TiDB v7.5.0 LTS 计划于 2023 年 11 月正式 Release&#xff0c;目前代码虽未冻结&#xff0c;但已经可以看到 Alpha 版本的 Code 了&#xff0c;本文代码将以 v7.5.0-alpha 为基准。 TiDB Se…

通达信抛物线SAR指标原理详解、参数设置及选股公式

抛物线指标(SAR)是由技术分析大师威尔斯威尔德(Welles Wilder)发明的&#xff0c;在其1978 年出版的《技术交易系统新概念》一书中介绍了该指标。SAR指标通过跟踪股票价格的动态变化&#xff0c;在走势图上以一系列点的形式显示&#xff0c;提供了一种判断趋势反转的方法&#…

主机的具体权限规划:ACL的使用

目的&#xff1a;针对某一用户或某一组来设置特定权限需求&#xff0c;针对上&#xff0c;接着设置 ACL可以针对单一用户&#xff0c;文件&#xff0c;或者目录来进行rwx的权限设置&#xff0c;对于需要特殊权限的设置非常有帮助。 第一&#xff0c;查看文件系统是否支持&…

易点天下携AIGC创新成果KreadoAI亮相数贸会,解锁电商文化出海新可能

11月27日&#xff0c;第二届全球数字贸易博览会&#xff08;以下简称“数贸会”&#xff09;在浙江杭州完美落幕。作为出海营销领域最早一批布局AIGC战略的营销科技公司&#xff0c;易点天下受邀与来自全球800余家境内外数字贸易企业同台参展&#xff0c;并分享了旗下AIGC数字营…

04、基于高斯分布的异常检测算法

04、基于高斯分布的异常检测算法原理与实践 开始学习机器学习啦&#xff0c;已经把吴恩达的课全部刷完了&#xff0c;现在开始熟悉一下复现代码。对这个手写数字实部比较感兴趣&#xff0c;作为入门的素材非常合适。 数据的严重偏斜往往会导致监督学习算法面临巨大的挑战——…

做项目,要从学生思维里跳出来

今天分享下在23期群的聊天记录&#xff0c;关于做项目正确的思维&#xff0c;自己曾经走过一些弯路&#xff0c;希望大家能Get到。 做项目&#xff0c;一定要从学生思维里跳出来。 1.学生思维就是前期就想每个细节都要搞懂&#xff0c;感觉才能往下&#xff0c;其实像lora&…

【数据结构复习之路】树和二叉树(严蔚敏版)万字详解主打基础

专栏&#xff1a;数据结构复习之路 复习完上面四章【线性表】【栈和队列】【串】【数组和广义表】&#xff0c;我们接着复习 树和二叉树&#xff0c;这篇文章我写的非常详细且通俗易懂&#xff0c;看完保证会带给你不一样的收获。如果对你有帮助&#xff0c;看在我这么辛苦整理…