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 '/#
總結
以上是生活随笔為你收集整理的linux文本处理脚本题,Linux文本处理工具sed练习题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++学习之路 | PTA(天梯赛)——
- 下一篇: 8s nfs 挂载文件_Kubernet