linux sed

sed正则

匹配非小写字母

[root@rhel6 script]# openssl rand -base64 40| sed 's/[^a-z]/''/g' | cut -c 1-10
ztfyovisal

 

sed d

1. send d删除某行

[root@rhel6 script]# mysql -uroot -p123456 -S "/var/lib/mysql/mysql.sock" -e "show databases;" | sed '1,2d'
mysql
oldboy
oldgirl
test
vincen

sed -n

1、sed -n 打印文件的行

[root@os tmp]# sed -n "1,5p" c.sh
[ $# -ne 2 ] && {
echo "must be two args."
exit 119
}

 

sed -i

2、sed -i 替换字符串(参数s替换某行中的内容) (参数d删除某行) (参数a增加内容)

 


# 替换每一行第一个匹配到的关键字
sed 's/原字符串/替换字符串/'

# 替换所有行所有匹配到的关键字
sed 's/原字符串/替换字符串/g'

 

参数d删除某行


sed -i '10d' /etc/sysconfig/selinux

 

参数a增加内容

sed -i '11a hello world' /etc/sysconfig/selinux 

 

参数c整行替换

sed -i '2c haha' /etc/sysconfig/selinux 

 

实例:

#!/bin/bash
. /etc/init.d/functions
for i in `seq -w 10`;do
        rand=`openssl rand -base64 40 | sed 's/[^a-z]/''/g'|cut -c 1-10`
        touch ${rand}-oldboy.html
        action "create ${rand}-oldboy.html..."
done

 

posted @ 2017-03-10 12:29  Vincen_shen  阅读(157)  评论(0编辑  收藏  举报