当前位置:网站首页>[轻松学会shell编程]-4、单引号和双引号的区别、整形数值的运算、shell中数组定义和sed的详细用法
[轻松学会shell编程]-4、单引号和双引号的区别、整形数值的运算、shell中数组定义和sed的详细用法
2022-06-22 16:52:00 【FanMY_71】
1、单引号和双引号的区别
单引号所见即所得

2、整形数值的运算:

[[email protected] ~]# a=10
[[email protected] ~]# b=20
[[email protected] ~]# echo $(($a+$b))
30
[[email protected] ~]# echo $[$a+$b]
30
# 使用expr
[[email protected] ~]# expr $a+$b
10+20
[[email protected] ~]# expr $a + $b
30
浮点型的话,就是用bc
3、shell中的数组
定义:使用圆括号、中间以空格作为分隔符
[[email protected] case]# a=(xx yy zz ff)
[[email protected] case]# echo $a
xx
[[email protected] case]# echo ${a[*]}
xx yy zz ff
[[email protected] case]# echo ${a[@]}
xx yy zz ff
[[email protected] case]# echo ${a[@]:1:3}
yy zz ff
[[email protected] case]# echo ${#a[@]}
4
[[email protected] case]# a[3]='hh'
[[email protected] case]# unset a[2]
[[email protected] case]# echo ${!a[@]}
0 1 3
4、sed
sed是一种支持正则表达式的非交互式流编辑器(stream editor)。Linux系统中的sed命令主要是利用script来处理文件的。

- 内存中关于sed有两个空间:patterrn space(模式空间;加工车间)和hold space(保留空间;临时仓库)
- 两个空间可以互相访问的。
- 一般保留空间不使用,只是用模式空间。模式空间处理完一行,就会清空并且输出到屏幕上。然后进行下一行操作。若是你想要保留这一行,你可以把它放进保留空间。
模式空间的概念
模式空间:sed工具从文件读取一行文本然后存入的缓冲区,然后命令操作模式空间的内容,在初始状态下模式空间是没有内容的,在每次循环读取数据的过程中,模式空间都会被清空并写入新的内容(这里补充一点,sed命令操作就是 “模式空间” 而不是内存,这就是为什么sed不会改变原文件内容的原因,如果想改变原文件内容需要加-i选项)
sed工具的执行流程图

命令n的工作流程图:
清空当前模式空间,然后读入下一行(如果sed语句遇到n命令会改变正常的执行流程),执行流程如下:

4.1、sed的语法命令格式和常用选项
命令格式:

一般只用到前面两种语法。
常用选项:
sed查找方式:
- 根据行号
- 根据模式--》正则表达式=字符+特殊符号
- 根据字符串
4.1.1、sed的常用编辑命令

4.1.2、sed的p命令示例
[[email protected] rough_book]# sed -n '3,5p' passwd
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
# -n,抑制模式空间的自动打印,即仅显示script处理后的结果。若是没有这个 -n,会输出整个"passwd"文件,且3到5行会输出两遍。因为3到5行刚好符合我们设置的条件,所以会在patter space中逗留,处理完之后又会输出一遍,所以就会造成出现输出两遍。
# 这样看的清楚一些
[[email protected] rough_book]# cat passwd -n |sed -n '3,5p'
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
- sed -n '10p' passwd 显示第10行
- sed -n '$p' passwd 显示最后一行
- sed -n '2+2p' passwd 显示2,3,4行
- sed -n '10,30!p' passwd 显示出了10到30的行
- sed -n '2 ~2p' passwd 显示双数行。从2开始步长为2开始取。
4.1.3、sed -n '/模式/p' 输入文件
- 这里的模式可以是正则表达式也可以是精确字符
- 模式用/括起,扩展正则要加-r选项
[[email protected] rough_book]# sed -n '/bash$/p' passwd
# 这里面^也可以使用使用扩展正则
[[email protected] rough_book]# sed -nr '/^fan|^zhao/p' passwd
fan1:x:7800:7803::/home/fan1:/bin/bash
fan2:x:7801:7804::/home/fan2:/bin/bash
zhaoliying1:x:7802:7805::/home/zhaoliying1:/bin/bash
使用转义字符
[[email protected] rough_book]# df -h|sed -n '/\/$/p'
/dev/mapper/centos-root 17G 3.2G 14G 19% /
4.2、sed里单引号和双引号的区别
- 双引号里可以使用shell里的变量
[[email protected] rough_book]# a=5
[[email protected] rough_book]# b=10
[[email protected] rough_book]# cat -n passwd |sed -n "${a},${b}p"
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8 halt:x:7:0:halt:/sbin:/sbin/halt
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10 operator:x:11:0:operator:/root:/sbin/nologin
- 单引号不行
- 单引号和双引号里都可以存放模式

边栏推荐
- JSP learning (I) -- overview of JSP
- Unity中通过射线躲避障碍物寻路的一些初步探索
- Stop automatically after MySQL server starts
- 思维的定义
- Content recommendation process
- Donghua University - Research on interpretable recommendation micro behavior with enhanced knowledge perception reasoning
- 请问一下flink mysql-cdc 如何保证server_id全局唯一呢?
- Missing value handling
- Mybaits: common database operations (Neusoft operations)
- Correct method of converting Inkscape into DXF file SVG exporting DXF file
猜你喜欢
随机推荐
Jenkins配置项目集成钉钉通知
< JVM part I: memory and garbage collection part > 08 object instantiation and direct memory
2022年5月中国游戏厂商及应用出海 EMEA 地区收入30强
GPIO operation method of imx6ull
Conda——基础配置命令总结
Jenkins的安装与升级
d的dip1000,1
SOA面向服务的架构
问下 cdc 2.2.1监控sqlServer是不支持监控多库的吗?
High voltage direct current (HVDC) model based on converter (MMC) technology and voltage source converter (VSC) (implemented by MATLAB & Simulink)
测试组的任务职责和测试的基本概念
Short video live broadcast source code, use of EditText input box
游戏NFT市场:OpenSea最易被切下的蛋糕
Filebeat收集日志数据传输到Redis,通过Logstash来根据日志字段创建不同的ES索引
DAP事实表加工汇总功能应用说明
同花顺软件是什么?网上开户安全么?
Application description of DAP fact table processing summary function
知乎热问:一个程序员的水平能差到什么程度?
Xftp 7 (ftp/sftp client) v7.0.0107 official Chinese free official version (with file + installation tutorial)
AD20/Altium designer——过孔盖油









