sed行文本处理工具

Sed是一种流编辑器,过滤和替换文本

工作原理:

简单的来说,Sed一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称之为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行。直到文件末尾。

语法:

sed [option] [script‘(sed自带语法脚本)] [input-file处理的文件]

sed [选项] + "地址+命令 " file

常用option参数(+描述):

--help: 获取帮助信息;
-n: 不输出模式空间内容到屏幕,即不自动打印,配合编辑命令只打印符合条件字符串;
-e: 多点编辑,可添加多个脚本;
-f: /PATH/SCRIPT_FILE,从指定文件中读取编辑脚本;
-i: 原文件编辑(直接修改原处理文件),不添加-i参数,不会对原文件进行修改;
-r : 支持使用扩展的正则表达式;

Script:

地址+命令

地址:

1.不给地址:对全文进行处理;

2.单地址:

#:指定的行(1p,2p...)

/pattern/:被模式匹配匹配到的字串行

3.范围地址:

#,#:第几行只第几行(1,2p)

#,+#:从第#行起始向后+#行

/pat1/,/pat2/:模式1匹配 所在行至模式2匹配所在行

#,/pat/:第几行只模式匹配行

4.~:步进

1~2:奇数行

2~2:偶数行

编辑命令:

d: 删除模式空间匹配的行;
p: 显示模式空间中的内容;
a \text: 在指定行后追加文本,支持使用\n多行追加文本;
i \test: 在行前面插入文本,支持使用\n实现多行插入;
c \test: 替换行为单行或多行文本;
w /PATH/Somefile: 保存模式匹配的行至指定文件;
r /PATH/Somefile: 读取指定文件的文本至模式空间中匹配到的行后;
=: 为模式空间中的行打印行号;
!: 模式空间中匹配行取反操作;

sed查找替换:

s///:查找替换,只是吃用其他分隔符:

[email protected]@@

s###

替换标记:

g:行内全局替换

p:显示替换成功的行

w /PATH/TO/Somefile:将替换成功的行报错至文件中

操作原文件:

[[email protected] ~]# cat -n Test.txt 
     1	root:x:0:0:root:/root:/bin/bash
     2	bin:x:1:1:bin:/bin:/sbin/nologin
     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
     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

匹配打印(p):

#打印匹配root开头的行:
#每一行都读到模式空间,不加-n参数默认进行输出,这里看到root:x:0:0:root:/root:/bin/bash输出两行
[[email protected] ~]# cat Test.txt | sed ‘/^root/p‘
root:x:0:0:root:/root:/bin/bash
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
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
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin

[[email protected] ~]# tail Test.txt | sed -n ‘/^root/p‘
root:x:0:0:root:/root:/bin/bash

#打印包含root的行:
[[email protected] ~]# cat -n Test.txt | sed -n ‘/root/p‘
     1	root:x:0:0:root:/root:/bin/bash
    10	operator:x:11:0:operator:/root:/sbin/nologin

#打印第二行:
[[email protected] ~]# cat -n Test.txt | sed -n ‘2p‘
     2	bin:x:1:1:bin:/bin:/sbin/nologin
[[email protected] ~]#

#打印第一行到,第三行:
[[email protected] ~]# cat -n Test.txt | sed -n ‘1,3p‘
     1	root:x:0:0:root:/root:/bin/bash
     2	bin:x:1:1:bin:/bin:/sbin/nologin
     3	daemon:x:2:2:daemon:/sbin:/sbin/nologin

#打印第三行起始后三行:
[[email protected] ~]# cat -n Test.txt | sed -n ‘3,+3p‘
     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
     6	sync:x:5:0:sync:/sbin:/bin/sync

#打印以nologin结尾的行:(匹配)
[[email protected] ~]# cat -n Test.txt | sed -n ‘/nologin$/p‘
     2	bin:x:1:1:bin:/bin:/sbin/nologin
     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
     9	mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10	operator:x:11:0:operator:/root:/sbin/nologin

#打印root开头行至daemon开头行
[[email protected] ~]# sed -n ‘/^root/,/^daemon/p‘ Test.txt 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

#打印最后一行
[[email protected] ~]# cat -n Test.txt | sed -n ‘$p‘
    10	operator:x:11:0:operator:/root:/sbin/nologin

#不打印最后一行:(“!”表示取反)
[[email protected] ~]# cat -n Test.txt | sed -n ‘$!p‘
     1	root:x:0:0:root:/root:/bin/bash
     2	bin:x:1:1:bin:/bin:/sbin/nologin
     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
     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

#打印奇数行
[[email protected] ~]# cat -n Test.txt |sed -n ‘1~2p‘
     1	root:x:0:0:root:/root:/bin/bash
     3	daemon:x:2:2:daemon:/sbin:/sbin/nologin
     5	lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
     7	shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
     9	mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

#打印偶数行
[[email protected] ~]# cat -n Test.txt |sed -n ‘2~2p‘
     2	bin:x:1:1:bin:/bin:/sbin/nologin
     4	adm:x:3:4:adm:/var/adm:/sbin/nologin
     6	sync:x:5:0:sync:/sbin:/bin/sync
     8	halt:x:7:0:halt:/sbin:/sbin/halt
    10	operator:x:11:0:operator:/root:/sbin/nologin

#引用变量:sed命令使用单引号:变量用单引号引起来,sed命令使用双引号,解释特殊符号原有意义
[[email protected] ~]# a=1
[[email protected] ~]# b=2
[[email protected] ~]# cat -n Test.txt | sed -n ‘‘$a‘,‘$b‘p‘
     1	root:x:0:0:root:/root:/bin/bash
     2	bin:x:1:1:bin:/bin:/sbin/nologin
[[email protected] ~]# cat -n Test.txt | sed -n "$a,"$b"p"
     1	root:x:0:0:root:/root:/bin/bash
     2	bin:x:1:1:bin:/bin:/sbin/nologin

匹配删除(d):

#删除匹配root行
[[email protected] ~]# cat -n Test.txt | sed ‘/root/d‘
     2	bin:x:1:1:bin:/bin:/sbin/nologin
     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
     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

#删除第二行
[[email protected] ~]# cat -n Test.txt | sed ‘2d‘
     1	root:x:0:0:root:/root:/bin/bash
     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
     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

#删除1至9行
[[email protected] ~]# cat -n Test.txt | sed ‘1,9d‘
    10	operator:x:11:0:operator:/root:/sbin/nologin

#删除偶数行
[[email protected] ~]# cat -n Test.txt | sed ‘2~2d‘
     1	root:x:0:0:root:/root:/bin/bash
     3	daemon:x:2:2:daemon:/sbin:/sbin/nologin
     5	lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
     7	shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
     9	mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
#删除配置文件中以(#开头的行和空行)
[[email protected] ~]# sed ‘/^#/d;/^$/d‘ /etc/vsftpd/vsftpd.conf 
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

替换(s///):

#替换root字符串为ROOT,s///:只是替换每行中第一个匹配到的字符串
[[email protected] ~]# cat -n Test.txt | sed ‘s/root/ROOT/‘
     1	ROOT:x:0:0:root:/root:/bin/bash                #第一行中只有第一个root替换成ROOT
     2	bin:x:1:1:bin:/bin:/sbin/nologin
     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
     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    #唯一一个root

#全局替换root字符串为ROOT,s///g
[[email protected] ~]# cat -n Test.txt | sed ‘s/root/ROOT/g‘
     1	ROOT:x:0:0:ROOT:/ROOT:/bin/bash
     2	bin:x:1:1:bin:/bin:/sbin/nologin
     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
     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

#正则匹配
[[email protected] ~]# sed -n ‘s/^root/ROOT/p‘ Test.txt 
ROOT:x:0:0:root:/root:/bin/bash

#分组使用:取出基本名,目录名
[[email protected] ~]# dirname /etc/sysconfig/sshd 
/etc/sysconfig
[[email protected] ~]# basename /etc/sysconfig/sshd 
sshd
[[email protected] ~]# echo "/etc/sysconfig/sshd" | sed -r ‘s#(/.*/)([^/]+/?)#\1#‘
/etc/sysconfig/
[[email protected] ~]# echo "/etc/sysconfig/sshd" | sed -r ‘s#(/.*/)([^/]+/?)#\2#‘
sshd

#使用&命令引用匹配内容并且替换,
#注:&代表root,&.1:把root替换成root.1
[[email protected] ~]# cat -n Test.txt |sed ‘s/root/&.1/g‘
     1	root.1:x:0:0:root.1:/root.1:/bin/bash
......

#为1,2行添加注释
[[email protected] ~]# cat -n Test.txt |sed ‘1,2s/^/#/‘
#     1	root:x:0:0:root:/root:/bin/bash
#     2	bin:x:1:1:bin:/bin:/sbin/nologin
     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

多点编辑(-e):

[[email protected] ~]# cat -n Test.txt |sed -e ‘4,5d‘ -e ‘s/root/ROOT/g‘
     1	ROOT:x:0:0:ROOT:/ROOT:/bin/bash
     2	bin:x:1:1:bin:/bin:/sbin/nologin
     3	daemon:x:2:2:daemon:/sbin:/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

添加/追加内容(a,i,c):

#i:在搜索匹配到的上一行添加
[[email protected] ~]# cat -n Test.txt | sed ‘/root/i \Root‘
Root
     1	root:x:0:0:root:/root:/bin/bash
     2	bin:x:1:1:bin:/bin:/sbin/nologin
......

#a:在搜索匹配的下一行添加
[[email protected] ~]# cat -n Test.txt | sed ‘/root/a \Root‘
     1	root:x:0:0:root:/root:/bin/bash
Root
     2	bin:x:1:1:bin:/bin:/sbin/nologin
     3	daemon:x:2:2:daemon:/sbin:/sbin/nologin
......

#c:替换搜索匹配的行
[[email protected] ~]# cat -n Test.txt | sed ‘/root/c \Root‘
Root
     2	bin:x:1:1:bin:/bin:/sbin/nologin
     3	daemon:x:2:2:daemon:/sbin:/sbin/nologin
......

注:同样可以指定地址单行添加,指定地址范围添加......

保存模式匹配的行至指定文件(w):

#匹配1,2行追加Test1
[[email protected] ~]# cat -n Test.txt | sed ‘1,2w Test1‘
     1	root:x:0:0:root:/root:/bin/bash
     2	bin:x:1:1:bin:/bin:/sbin/nologin
     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
     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
[[email protected] ~]# cat Test1
     1	root:x:0:0:root:/root:/bin/bash
     2	bin:x:1:1:bin:/bin:/sbin/nologin

读取指定文件的文本追加至模式空间(r):

#读取/etc/redhat-release,追加至1,2行
[[email protected] ~]# cat -n Test.txt | sed ‘1,2r /etc/redhat-release‘
     1	root:x:0:0:root:/root:/bin/bash
CentOS Linux release 7.2.1511 (Core) 
     2	bin:x:1:1:bin:/bin:/sbin/nologin
CentOS Linux release 7.2.1511 (Core) 
     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

匹配到的行号:

#=:
[[email protected] ~]# cat -n Test.txt | sed -n ‘/root/=‘
1
10

原文件编辑(i):

[[email protected] ~]#  sed -i ‘s/adm/ADM/g‘ Test.txt
[[email protected] ~]# cat Test.txt 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
ADM:x:3:4:ADM:/var/ADM:/sbin/nologin
......

注意:由于-i参数修改原配置文件,操作比较危险,可以使用-i.bak执行,生成源文件.bak就是之前没有改动的文件(bak是自己制定,随意指定)。

[[email protected] ~]# sed -i.bak ‘1,7d‘ Test.txt 
[[email protected] ~]# cat Test.txt
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[[email protected] ~]# cat Test.txt.bak        #原文件备份
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
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
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin


空间操作:

n: 读取匹配到的行的下一行覆盖至模式空间;
N: 读取匹配到的行的下一行追加至模式空间;
h: 模式空间中内容覆盖至保持空间中;
H: 模式空间中的内容追加至保持空间中;
g: 从保持空间取出数据覆盖至模式空间;
G: 从保持空间取出内容追加至模式空间;
d: 删除模式空间中的行;
D: 删除当前模式空间开端至\n的内容(不在传至标准输出),放弃之后的命令,对剩余模式空间重新执行sed;
x: 模式空间中内容与保持空间内容进行互换;
#取出偶数行:
[[email protected] ~]# cat -n Test.txt | sed -n ‘n;p‘
     2	bin:x:1:1:bin:/bin:/sbin/nologin
     4	ADM:x:3:4:ADM:/var/ADM:/sbin/nologin
     6	sync:x:5:0:sync:/sbin:/bin/sync
     8	halt:x:7:0:halt:/sbin:/sbin/halt
    10	operator:x:11:0:operator:/root:/sbin/nologin
#取出奇数行:
[[email protected] ~]# cat -n Test.txt | sed ‘n;d‘
     1	root:x:0:0:root:/root:/bin/bash
     3	daemon:x:2:2:daemon:/sbin:/sbin/nologin
     5	lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
     7	shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
     9	mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
#倒叙显示:
[[email protected] ~]# cat -n Test.txt |sed -n ‘1!G;h;$p‘
      10	operator:x:11:0:operator:/root:/sbin/nologin
     9	mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
     8	halt:x:7:0:halt:/sbin:/sbin/halt
     7	shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
     6	sync:x:5:0:sync:/sbin:/bin/sync
     5	lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
     4	adm:x:3:4:adm:/var/adm:/sbin/nologin
     3	daemon:x:2:2:daemon:/sbin:/sbin/nologin
     2	bin:x:1:1:bin:/bin:/sbin/nologin
     1	root:x:0:0:root:/root:/bin/bash
#打印文件最后一行:
[[email protected] ~]# sed ‘N;D‘ Test.txt
operator:x:11:0:operator:/root:/sbin/nologin
#在每行后增加空行:
[[email protected] ~]# sed ‘G‘ Test.txt 
root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

......
时间: 2024-10-05 12:53:27

sed行文本处理工具的相关文章

9.Linux命令行文本处理工具

9.Linux命令行文本处理工具 ·基于关键字搜索文本grep ·grep 'test' /etc/passwd搜索关键字, ·find / -user test | grep Video在结果里搜索,find输出的是文本,然后grep关键字, ·选项:-i,忽略大小写, -n,显示结果所在的行数, -v,显示排除关键字的行, -Ax,显示关键字及后面x行,A=after, -Bx,显示关键字及前面面x行,B=before, --color=auto关键字用颜色显示, ·基于列处理文本内容cut

linux入门基础——linux命令行文本处理工具

linux命令行文本处理工具 文件浏览 cat        查看文件内容 more    以翻页形式查看文件内容(只能向下翻页) less    以翻页形式查看文件内容(可上下翻页) head    查看文件的开始10行(或指定行数) tail    查看文件的结束10行(或指定行数) 基于关键字搜索 命令grep用以基于关键字搜索文本 -i        在搜索的时忽略大小写 -n        显示结果所在行数 -v        输出不带关键字的行 -Ax        在输出的时候包含

sed && awk工具 及一些经常使用的shell脚本

(一)sed sed是一个精简的.非交互式的流式编辑器,它在命令行中输入编辑命令和指定文件名称.然后在屏幕上查看输出. 逐行读取文件内容存储在暂时缓冲区中,称为"模式空间"(pattern space).接着用sed命令处理缓冲区的内容,处理完毕后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断反复,直到文件末尾.原文件爱你的内容并没有改变. sed '4,$d' test.in # 删除4~最后一行 sed '3q' test.in # 读到指定行之后退出 sed 's/publi

sed:linux常用工具

参考文章:http://www.thegeekstuff.com sed工作原理 This is called as one execution cycle. Cycle continues till end of file/input is reached: 1. Read a entire line from stdin/file. 2. Removes any trailing newline. 3. Places the line, in its pattern buffer. 4. M

Linux命令行文本处理工具

-v排除操作 以:为分隔符 ,只显示文件的第一列例子: 管道例子: 文本统计: 不能删除是因为只能删除相邻的重复行 例子: 1,50表示1-50行.指定多个替换加-e :或者放在sededit文件当中.

自动化运维:认识 shell

目录 (一)运维是什么? (二)什么是 Shell? (三)Shell的分类 (四)Shell脚本 (五)Shell的变量 (六)表达式 (七)Linux常见符号 (八)常见命令 (一)自动化运维是什么? 现在有成百上千台服务器的集群需要你部署,你需要登录所有的服务器,对每一台服务器都进行相同的设置.请问你如何完成这项工作?你需要自动化运维. 自动化运维是使用工具和脚本等手段,对企业 it 项目的规划.管理.流程规范.平台.监控.告警.安全.优化.考核等流程实现自动化批量运作. (二)什么是 S

详解Shell脚本:sed命令工具 ,awk命令工具

-----------------------------概述----------------------------------- Linux文本处理工具(以下都是命令和工具,而且只是作为展示,不能作为修改动作) grep(过滤,但是不支持正则表达式)egrep(支持正则表达式)sed (行过滤)awk(列过滤) - 正则表达式概念 正则表达式:使用单个字符串来描述.匹配一系列符合某个句法规则的字符串 由普通字符与特殊字符组成,一般用在脚本编程.文本编辑器中,如php.python.she等,

shell文本过滤编程(九):sed命令

[版权声明:转载请保留出处:blog.csdn.net/gentleliu.Mail:shallnew at 163 dot com] sed和awk类似,是很重要的文本过滤工具. 调用sed和调用awk一样,有三种方式: 1. 在命令行键入命令: 2.将sed命令插入脚本文件,然后调用sed: 3. 将sed命令插入脚本文件,并使sed脚本可执行. 使用sed命令行格式为: sed [option] 'sed cmd' inputfile 使用sed脚本文件,格式为: sed [option]

三剑客之sed,awk,grep,egrep

Sed是文本处理工具,依赖于正则表达式,可以读取文本内容,根据指定条件对数据进行添加.删除.替换等操作,广泛应用于shell脚本,以完成自动化处理任务.Sed在处理数据时默认不直接修改源文件,而是把当前处理的行存储在临时缓冲区中,所有指令都在缓冲区中操作,处理完成后,把缓冲区内容默认输出到屏幕,接着处理下一行内容,这样不断重复,直到文件末尾,文件本身内容并没有做任何改变.一.Sed三大功能:(1)读取:sed 从输入流(文件.管道.标准输入)中读取一行内容并存储到临时的缓冲区中:(2)执行:默认