Linux入门之sed命令案例

实战:

1、删除/etc/grub.conf文件中行首的空白符;

sed -r ‘[email protected]^[[:spapce:]][email protected]@g‘ /etc/grub.conf

2、替换/etc/inittab文件中"id:3:initdefault:"一行中的数字为5;

sed ‘[email protected]\(id:\)[0-9]\(:initdefault:\)@\15\[email protected]‘ /etc/inittab

3、删除/etc/inittab文件中的空白行;

sed ‘/^[[:space:]]\?$/d‘ /etc/inittab

4、删除/etc/inittab文件中开头的#号;

sed ‘[email protected]^#@@g‘ /etc/inittab

5、删除某文件中开头的#号及后面的空白字符,但要求#号后面必须有空白字符;

sed -r ‘[email protected]^#[[:space:]][email protected]@g‘ /etc/inittab

6、删除某文件中以空白字符后面跟#类的行中的开头的空白字符及#

sed -r ‘[email protected]^[[:space:]]+#@@g‘ /etc/inittab

7、取出一个文件路径的目录名称;

echo "/etc/rc.d/" | sed -r ‘[email protected]^(/.*/)[^/]+/[email protected]\[email protected]‘

案例二:

1、删除/etc/grub2.conf文件中所有以空白开头的行行首的空白字符

sed ‘/^[[:space:]]/d‘ /etc/grub.conf

2、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符

sed ‘s/^#[[:space:]]\+//g‘ /etc/grub.conf

3、在/root/install.log每一行行首增加#号

sed ‘s/^\(.*\)/#\1/g‘

4、在/etc/fstab文件中不以#开头的行的行首增加#号

sed ‘s/^[^#].*/#&/g‘ /etc/fstab

5、处理/etc/fstab路径,使用sed命令取出其目录名和基名

#取目录
[[email protected] ~]# echo "/sdf/fdg/" | sed ‘s/^\(\/.*\/\)[^\/]\+\/\?$/\1/g‘
/sdf/
#取基名
[[email protected] ~]# echo "/sdf/fdg/" | sed ‘s/^\(\/.*\/\)\([^\/]\+\)\/\?$/\2/g‘
fdg
#取基名
[[email protected] ~]# echo "/et/" | sed ‘s/^\(\/.*\)\<//g‘
et/
#万能方法:
#取目录名
[[email protected] ~]# echo "/et.sdf/df/ggsdfd/" | sed ‘s/^\(\/.*\)\<\(.*\)\+\/\?/\2/g‘
ggsdfd/
#取基名
[[email protected] ~]# echo "/et.sdf/df/ggsdfd/" | sed ‘s/^\(\/.*\)\<\(.*\)\+\/\?/\1/g‘
/et.sdf/df/

6、利用sed 取出ifconfig命令中本机的IPv4地址

#简易型:
sed -n ‘/inet[^0-9]/p‘ | sed  -n ‘s/.*addr:\(.*\)[[:space:]]\+B.*/\1/p‘
#复杂型:
[[email protected] ~]# ifconfig | sed  -n ‘{/inet[^0-9]/p;}‘ | sed ‘{s/^.*r:\(\<[0-9\.]\+\>\)[[:space:]]\+\(B...t:\(\<[0-9\.]\+\>\)[[:space:]]\+\)\?M..k:\(\<[0-9\.]\+\>\)/\1/g;/^[[:space:]]\?$/d}‘
192.168.20.133
10.1.249.71
127.0.0.1
#注意:\1 为ip \3 为广播地址 \4 为子网掩码

7、统计centos安装光盘中Package目录下的所有rpm文件的以.分隔倒数第二个字段的重复次数

[[email protected] Packages]# ls ./* | sed -n ‘s/^.*\.\(.*\)\.rpm$/\1/gp‘ | sort | uniq -c
      4 i686
    919 noarch
   2283 x86_64
时间: 2024-08-28 09:08:14

Linux入门之sed命令案例的相关文章

〖Linux〗使用sed命令修改小端(little endian)存储的数据

1 #!/bin/bash - 2 #=============================================================================== 3 # 4 # FILE: hex_change.sh 5 # 6 # USAGE: ./hex_change.sh 7 # 8 # DESCRIPTION: 9 # 10 # OPTIONS: --- 11 # REQUIREMENTS: --- 12 # BUGS: --- 13 # NOTES:

linux入门之grep 正则表达式案例

grep 正则表达式案例 案例一: 1.显示/proc/meminfo文件中以大小s开头的行:(要求:使用两种方式) #grep -i '^s' /proc/meminfo #grep  '^[Ss]' /proc/meminfo #grep -E '^(s|S)' /proc/meinfo 2.显示/etc/passwd文件中不以/bin/bash结尾的行 #grep -v '/bin/bash$' /etc/passwd 3.显示用户rpc默认的shell程序 #grep '^\<rpc\>

linux shell 用sed命令在文本的行尾或行首添加字符

from:http://www.cnblogs.com/aaronwxb/archive/2011/08/19/2145364.html 昨天写一个脚本花了一天的2/3的时间,而且大部分时间都耗在了sed命令上,今天不总结一下都对不起昨天流逝的时间啊~~~ 用sed命令在行首或行尾添加字符的命令有以下几种: 假设处理的文本为test.file 在每行的头添加字符,比如"HEAD",命令如下: sed 's/^/HEAD&/g' test.file 在每行的行尾添加字符,比如“T

Linux入门_2-基础命令

Linux入门-基础命令 目录 ?日期命令date ?修改时区 ?日历命令cal ?关机启动命令halt,reboot,poweroff ?whoami.who.who am i.w ?screen ?echo ?$的使用方法 ?{}的使用方法 ?Tab补齐 ?History历史命令 日期命令date Linux:系统启动,启动时从硬件读取时间 和日期信息,读取完毕后,与硬件无关 系统时钟 硬件时钟 date:系统时钟 显示日期时间:date [OPTION]... [+FORMAT] form

Linux Shell编程 sed命令

概述 sed命令用来选取.替换.删除.新増数据 sed 是一种几乎可以应用在所有 UNIX 平台(包括 Linux)上的轻量级流编辑器.sed 有许多很好的特性.首先,它相当小巧,通常要比你所喜爱的脚本语言小多倍.其次,因为 sed 是一种流编辑器,所以,它可以对从如管道这样的标准输入中接收的数据进行编辑.因此,无须将要编辑的数据存储在磁盘上的文件中.因为可以轻易将数据管道输出到 sed,所以,将 sed 用作强大的 Shell 脚本中长而复杂的管道很容易.sed 主要是用来将数据进行选取.替换

Linux三剑客之sed命令

选定行的范围:,(逗号) 删除操作:d命令 显示模式空间内容 追加(行下):a\命令 插入(行上):i\命令 退出:q命令 多点编辑:e命令 从文件读入:r命令 写入文件:w命令 替换操作:s命令 替换文本中的字符串: 全面替换标记g 保持和获取:h命令和G命令 保持和互换:h命令和x命令 sed 简介 sed 工作原理 命令格式 常用选项: 地址定界: 编辑命令: 替换标记: sed元字符集(正则表达式) 高级编辑命令: sed用法实例 作业: 作业: sed命令 sed 简介 Stream

Linux下的sed命令使用详解

sed是stream editor的简称,也就是流编辑器.它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”pattern space,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到文件末尾.文件内容并没有 改变,除非你使用重定向存储输出. 使用语法sed命令的使用规则是这样的: sed [option] 'command' input_file 其中option是可选的,常用的option有如下几种: -n

Linux中的sed命令

sed - stream editor for filtering and transforming text 流编辑器的过滤和转换文本 sed [-nerf] [动作] 参数: -i 修改源文件 危险 -e 直接在命令行模式上执行sed的动作编辑 -f 直接将sed的动作写在一个文件内,-f filename 则可以执行filename内的sed动作 -r :使用扩展的正则表达式 -n 静默模式,默认的sed中所有来自stdin的数据一般都会被列出到屏幕上,但如果加上-n之后,则只有经过sed

linux基础之sed命令

Sed 流 编 辑 器 1.sed的基本用法: sed  [OPTION]...  'script' input-file... 2.sed:Stream   Editor  文本编辑器 行编辑器(全屏编辑器:vi) 3.sed:模式空间 默认不编辑源文件,仅对模式空间中的数据做处理,而后,处理结束后,讲模式空间打印至屏幕 1>.常用选项: -n  : 静默模式,不再默认显示模式空间的内容: -i   : 直接修改源文件: -e  : script   -escript    可以同时执行多个脚