linux文本处理脚本题,Linux文本处理工具sed练习题

1、使用sed命令打印出ifconfig ens33的ip地址

解:(1)ifconfig ens33 | sed -n '2p' | sed 's/.*inet //' | sed 's/netmask.*//'

(2)ifconfig ens33 | sed -n '2p' | sed -r 's/.*inet (.*)netmask.*/\1/'

(3)ifconfig ens33 | sed -r -n '2s/.*inet (.*)netmask.*/\1/p'

2、使用sed命令打印出系统版本

解:sed -r -n 's/.*release[[:space:]]*([^.]+).*/\1/p' /etc/centos-release

3、脚本题:使用sed判断版本号如果版本号是7则在/etc/default/grub的GRUB_CMDLINUX_LINUX="rhgb quiet"后面添加xxxxx字符,如果不是则退出不执行

解:vim /root/bin/test/sedtest.sh

#!/bin/bash

banben=`sed -nr 's/.*release[[:space:]]*([^.]+).*/\1/p' /etc/centos-release`

[ "$banben" -eq 7 ] && sed -nr -i.bak 's/(.*LINUX=".*)"/\1 xxxxxxxx"/p' /etc/default/grub || exit 20

追加的部分也可以用这种方法:sed -r 's/quiet/& xxxx/' /etc/default/grub(句子中的&符号代表了前面的所有字符)

4、使用sed取出/etc/sysconfig/network-scripts/中的基名与目录名

解:echo /etc/sysconfig/network-scripts/ | sed -nr 's#.*/(.+)/?#\1#p' 取基名

echo /etc/sysconfig/network-scripts/ | sed -nr 's#(.*/)(.+)/?#\1#p'取文件夹名

echo /etc/sysconfig/network-scripts/ | sed -nr 's#(.*/)(.+)/?#\2#p'取基名

5、使用sed将/etc/httpd/conf/httpd.conf中#NameVirtualHost *:80去掉#号,同时将最后7行的#都去掉

解:sed -e 's/#Name/Name/' -e '/#

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值