sed工具的用法

sed基本用法
用法1:前置命令 | sed  [选项]  '条件指令'
用法2:sed  [选项]  '条件指令'  文件.. .. |   awk
sed -n '/root/p' /etc/passwd | awk -F[/] '{print $2}'

sed工具的基本选项
-n(屏蔽默认输出,默认sed会输出读取文档的全部内容)
-r(让sed支持扩展正则)----------------------------------------------------
+ : 1..n    egrep 'f+' /etc/rc.local   
?  :  0..1     egrep 'init(ial)?' /etc/rc.local
{n,m} : n..m    # egrep '(ab){3,5}' brace.txt    # egrep '(ab){3,}' brace.txt
()    :        sed -r 's/^(.)(.*)(.)$/\3\2\1/' nssw.txt
|
\b
输出包括单词“init”的行,文件中“initialization”不合要求
egrep '\binit\b' /etc/rc.local
egrep '\<init\>' /etc/rc.local
-----------------------------------------------------------------------------------------
-i(sed直接修改源文件,默认sed只是通过内存临时修改文件,源文件无影响)
1)sed命令的 -n 选项

sed '1p' /etc/hosts  = sed 'p' /etc/hosts    #全部显示

sed -n '1p' /etc/hosts    #只显示打印行。

sed  -n '3,6p' /etc/passwd    打印passwd第3到第6行账户的信息

sed 'd' /etc/passwd         # 删除所有行

sed -n '1p;4p' /etc/passwd    # 1 行 and 4 行

sed -n '1,4d' test.txt            //删除操作
sed  '3,5d' a.txt             //删除第3~5行
sed  '/xml/d' a.txt            //删除所有包含xml的行
sed  '/xml/!d' a.txt         //删除不包含xml的行,!符号表示取反
sed  '$d' a.txt                //删除文件的最后一行
sed  '/^$/d' a.txt             //删除所有空行

sed -n '1p;4p' /etc/passwd

sed -n '3,+10p' /etc/passwd    打印第3以及后面的10行

sed -n '1~2p' /etc/passwd    打印1到2行?
sed -n '2~2p' /etc/passwd    

打印奇数偶数行

sed -n '/root/p' /etc/passwd    含root的行

sed -n '/bash$/p' /etc/passwd

sed  -n '/^bin/p' a.txt        //输出以bin开头的行

//输出文件的行数        sed  -n '$=' a.txt

替换操作的分隔“/”可改用其他字符,如#、&等,便于修改文件路径
sed命令的s替换基本功能(s/旧内容/新内容/选项):

sed 's/xml/XML/'  a.txt        //将每行中第一个xml替换为XML

sed 's/xml/XML/3' a.txt     //将每行中的第3个xml替换为XML

sed 's/xml/XML/g' a.txt     //将所有的xml都替换为XML

sed 's#/bin/bash#/sbin/sh#' a.txt  //将/bin/bash替换为/sbin/sh

sed '4,7s/^/#/'   a.txt         //将第4~7行注释掉(行首加#号)

sed 's/^#an/an/'  a.txt         //解除以#an开头的行的注释(去除行首的#号)

sed 's/.//2 ; s/.$//' nssw.txt     删除文件中每行的第二个、最后一个字符

sed 's/[0-9]//' nssw.txt

sed -r 's/[0-9]//g;s/^( )+//' nssw2.txt

sed 's/([A-Z])/[\1]/g' nssw.txt

sed  '2i XX'   a.txt            //在第二行前(面)一行,插入XX
sed  '2a XX'   a.txt            //在第二行后(面)一行,追加XX
sed  '2c XX'   a.txt            //将第二行替换为XX  c整行替换

彩排

sed命令的 -i 选项     # 真刀真枪
sed  -i  '$a 192.168.4.5  svr5.tarena.com svr5'  /etc/hosts
#sed [选项] '条件指令' 文件
选项:
-n 屏蔽默认输出
-r 支持扩展正则
-i 修改源文件
条件:
行号 4 4,5 4~2 4,+10
/正则/
指令:
p 打印
d 删除
s 替换s/旧/新/g
a 追加
i 插入
c 替换行


rm -rf * ; cd ..      ctrl + o
chattr -i  文件名                    
chattr -a  文件名                    

for i in node{1..6}
do
virsh start $i
done

fc    临时脚本,一次性脚本
-l:显示历史命令;
-n:显示历史命令时,不显示编号;    fc -ln  or  fc -rn
-r:反序显示历史命令。
fc -l -10     #显示10条历史命令
fc 1040 
fc !66    #执行第66条命令
fc -l -1    #执行最后一个命令 类似于 !!、 上键
fc -l -2    #执行倒数第二个命令 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值