常见的sed命令

第一行前插入aaased -i ‘1 i\aaa’ file.txt

最后一行插入aaased -i ‘$ a\aaa’ file.txt

指定行后插入aaased -i ‘2a\aaa’ file.txt

匹配行前/后插入aaased -i ‘/bbb/ i(a)\aaa’ file.txt

bbb字符后面插入aaased -i ‘/bbb/ &aaa/g’ file.txt

显示第一二行:sed  -n ‘1,2p’ file.txt

显示指定行:sed -n ‘/aaa/p’ file.txt

显示指定范围匹配行:sed -n ‘5,10{/aaa/p}’ file.txt

删除第一二行:sed ‘1,2 d’ file.txt

删除指定行:sed ‘/aaa/d’ file.txt

指定范围替换字符:sed ‘1,4 s/aaa/bbb/g’ file.txt      #14行的aaa替换成bbb

指定范围全部替换:sed ‘1,4c bbb’ file.txt            #14行替换成bbb

包含weibo的行中aaa替换bbbsed ‘/weibo/s/aaa/bbb/g’ file.txt

追加一个文件到指定行后:sed  ‘/aaa/r file2.txt’ file.txt

将匹配行写入一个文件:sed ‘/aaa/w file2.txt’ file.txt

删除空行:sed '/^$/d' file.txt

删除第一个字符:sed 's/^.//g' file.txt

打印匹配的下一行:sed -n '/aaa/{n;p}' file.txt


替换匹配行的下一行:把aaa行的下一行替换为bbb

sed -e "N;/aaa/s/\n.*/\nbbb/" file.txt


修改匹配的第N个内容:把第五个aaa替换为bbb

sed -i "/aaa/{x;s/^/./;/^\.\{5\}$/{x;s/.*/bbb/;x};x;}" file.txt

 

二、sedshell中引用变量

 

将单引号换成双引号:

sed -i "s/aaa/$num/g" file.txt

 

如果是通过脚本远程sed操作,还需要转移分号:

sed -i \"s/aaa/$num/g\" file.txt

 

变量用单引号引起来:

sed -i 's/aaa/'$num'/g' file.txt

 

变量用'''引起来:

sed -i 's/aaa/'''$num'''/g' file.txt

 

引用外部变量:

sed -i 's/aaa/'`echo $HOSTNAME`'/g' file.txt

sed -i 's/aaa/'$(echo $HOSTNAME)'/g' file.txt

 

如果使用双引号,则上面可以写成:

sed -i "s/aaa/`echo $HOSTNAME`/g" file.txt

sed -i "s/aaa/$(echo $HOSTNAME)/g" file.txt

 

三、每行行尾添加字符串

 

在行尾添加aaa字符串:

sed 's/$/ aaa/' file.txt

sed 's/\(.*\)/& aaa/' file.txt

sed 's/\(.*\)/\1 aaa/g' file.txt

 

awk的实现方法:

awk '/$/ {print $0,"aaa"}' file.txt

awk '{print $0,"aaa"}' file.txt

 

四、删除单引号

sed 's/\x27//g' file.txt

 

利用双引号:

sed -i "s/'//g" file.txt

 

五、取网卡IP

ifconfig eth0 | grep inet |sed 's/^.*addr://g' | sed 's/Bcast.*$//g'

ifconfig eth0 |sed -n 2p|awk  '{ print $2 }'|awk -F : '{ print $2 }'

ifconfig eth0 |sed -n 2p|awk  '{ print $2 }'|tr -d 'addr:'

ifconfig eth0 |sed -ne 's/\(.*\)addr:\([[:digit:].]*\)\(.*\)/\2/p'

 

ifconfig eth0 | sed -n '2p' | awk '{print substr($2,6)}'

awk '{print substr($2,6)}' 表示取第二项内容的第6个字符开始的字符串,即IP地址字符串开始的那部分。

 

awk及其他命令获取IP

ifconfig eth0|grep "inet addr:"|awk '{print $2}'|awk -F : '{print $2}'

ifconfig eth0|awk '/inet addr/ {print $2}' | awk -F: '{print $2}'

ifconfig eth0|awk '/inet addr/ {print $2}' | cut -f2 -d ":"

 

获取所有网卡IP

ifconfig | awk '{if ( $1 == "inet" && $3 ~ /^Bcast/) print $2}' | cut -f2 -d ":"

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值