Linux系统——sed命令

sed命令精讲

cat工作原理

cat命令只想文件,把文件打开后,将文件中所有内容一次性读到内存中,从内存里一次性输出到屏幕上,此时可能存在内存装不下的情况,因此cat命令只能查看小文件内容,不能读取大文件,对于大文件来说是“禁用”的。

==================================================

sed命令=====增删改查

在第5行上面增加一行

# sed '5i xxxxxx' test

Linux系统——sed命令

在第5行下面增加一行

# sed '5a xxxxx' test

在第5行行首增加xxxxxxxx

# sed '5s#^#xxxxxxxxxx#' test

在第5行行尾增加xxxxxxxx

# sed '5s#$#xxxxxxxxx#' test

多行行首增加xxxxxx

# sed '5,10s#^#xxxxxxxx#' test

多行行尾增加xxxxxxx

# sed '5,$s#$#xxxxxxxx#' test

删除全部行

# sed 'd' test

删除第二行

# sed '2d' test

删除最后一行

# sed '$d' test

删除第2-5行

# sed '2,5d' test

删除第2行和第5行

# sed '2d;5d' test

替换

将a替换为b(只替换一次)

# sed 's#a#b#' test

将a全部替换为b

# sed 's#a#b#g' test

在源文件,将a全部替换为b

# sed -i 's#a#b#g' test

在源文件,将a全部替换为b,并对源文件进行备份

# sed -i.bak 's#a#b#g' test

Linux系统——sed命令

Linux系统——sed命令

查找

全部不输出

# sed -n '' test

只输出x字符

# sed -n '/x /' test

输出20-30行内容

# sed -n '20,30p' test

输出第20行和第30行

# sed -n '20p;30p' test

输出最后一行

# sed -n '$p' test

输出第2行到含a的行

# sed -n '2,/a/p' test

输出含a的行到含b的行

# sed -n '/a/,/b/p' test

输出含a或yy的行

# sed -n '/a|yy/p' test

========================

显示行号

显示3-5行行号及内容

# sed -n '3,5{p;=}' test | xargs -n2 ####‘=’显示行号####

===========================

多行追加

在第二行上面追加两行文本

sed '2a 1234\n2345' test

sed的反向引用

用sed命令抓ip地址

# ifconfig eth0 | sed -n '2p' | sed-r 's#.*addr:(.*)Bcast.*#\1#'

Linux系统——sed命令

***********查看程序开机自启动 chkconfig命令**************

五个服务必须开启

network 网络服务

crond 定时任务

sshd 远程连接服务

sysstat 系统工具包

rsyslog 日志服务

**************************************************************

批量关闭3模式下的开机自启动

# chkconfig | grep -v "sshd|crond|network|sysstat|rsyslog" | grep "3:on" | sed -r 's#(.*)0:.*#chkconfig \1 off#' | bash

批量命名文件

# find -type f -name "*_finished.jpg" | sed -r 's#^(.*)_finished(.*)#mv \0 \1\2#' | bash

Linux系统——sed命令

seq命令

格式:seq 起始值 公差 结束值