您的位置首页  散文童话

spbshell3d(spbshell3d破解版)一看就会

Linux的sed命令有一定的入门门槛,它适合在非交互模式下(例如shell脚本)对文档进行编辑,是很强大的一个工具,但是不少人觉得不容易学,下

spbshell3d(spbshell3d破解版)一看就会

 

Linux的sed命令有一定的入门门槛,它适合在非交互模式下(例如shell脚本)对文档进行编辑,是很强大的一个工具,但是不少人觉得不容易学,下面就把sed的常用用法梳理下1. 术语&概念pattern space-模式空间,sed每次读取一行到模式空间。

hold space-保留空间,可以提供一些高级用法,今天先不讲了2. sed的语法格式如下sed [option] [address][command][flag] [filename]例如:sed -i

4a\inserted line test.txt其中的-i就是option;单引号中的4则是address,表示第4行,a\是command,表示在4行之后(新增一行)追加内容,后面的inserted line就是追加行的内容了。

最后的test.txt就是文件名另外单引号主要作用是避免包含空格或特殊符号时被错误解释,所以简单的表达式可以不用单引号,推荐都加上2.1. option常用的有两个:-n 静默模式,默认会打印每一行的内容;加这个选项,默认就不打印了。

举例:# 输出test.txt的内容,等效于cat因为此时没有-n,所以会打印每一行sed test.txt # 打印第2-4行的内容到屏幕 sed -n 2,4p test.txt # 不加-n,会打印每一行,而2,4p的存在又会打印2-4行,所以会变成2-4行都显示为重复的两行。

sed 2,4p test.txt-i 编辑模式,可以紧跟扩展名用于备份,例如-i.bak,则编辑时会自动将test.txt备份为test.txt.bak具体用法稍后讲解2.2. address - 地址。

就是限定要处理哪些行,address参数是可选的,没有提供Address则视为所有行常用的格式有以下几种:2,5 表示第2到5行,例如sed -n 2,5p test.txt2~3表示第2行开始,每3行,也就是2,5,8……。

2,+3表示第2行到第2+3也就是2到5行,等价于2,54,~3表示第4行开始,直到遇到第一个可以被3整除的行,本例是4-6行$ 最后一行,例如:sed -n $p test.txt/regexp/正则表达式匹配的行,例如以3,4,5开头的行:sed -n /^[3,4,5]/p test.txt

2.3. command= 打印当前行号,例如结合$可以统计共有多少行:sed -n $= test.txtp 打印pattern space (通常也就是当前行)的内容,例如:sed -n 2,5p test.txt

a\ 在pattern space末尾添加换行符并追加内容,例如第3行之后(4行)插入:sed -i 3a\xxx test.txti\ 在pattern space之前插入并添加换行符,例如3行之前(原3行下移变成第4行)插入: sed -i 3i\xxx test.txt

c\ 替换,例如将第三行内容替换成xxxx: sed -i 3c\xxxx test.txtd 删除pattern space,也就是删除当前行例如删除3-5行:sed -i 3,5d test.txt。

s/regexp/replacement/ 正则替换,例如将user替换成root:sed -i s/user/root/g test.txt3.应用举例# 删除空行sed -i /^$/d test.txt

#每行之后加一个空行 sed -i a\ test.txt #对3-5行每行之后加一个空行,3-5行之外的不处理 sed -i 3,5a\ test.txt # 将mysql原本注释的行# max_connections = 151取消注释并修改值为500

sudo sed -i s/^#\s*\(max_connections\s*=\s*\)[[:alnum:]]*$/\1500/ /etc/mysql/mysql.conf.d/mysqld.cnf

# 将mysql配置文件的监听地址127.0.0.1修改为0.0.0.0,但不修改mysqlx-bind-address sudo sed -i s/^\(bind-address\s*=\s*\)127.0.0.1/\10.0.0.0/

/etc/mysql/mysql.conf.d/mysqld.cnf

免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186