sed 常用方法 脚本范例

sed练习

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

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

2:替换/etc/inittab文件中“id:3:initdaefault:”一行中的数字为5

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

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

sed ‘/^$/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]‘

8:取出一个文件路径的文件名称

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

9:递归替换

sed -i ‘s/abc/bcd/g‘ `grep "abc" -rl /usr/local/src/zhangys/`

以下是

sed 基本用法

行编辑器(全屏编辑器:vi、)

模式空间:默认不编辑源文件,仅对末世空间中的数据做处理;而后,处理结束后,将模式空间打印至屏幕 。

sed 【options】选项 address地址commond命令 file。。。文件

-n:静默模式不再默认显示模式空间中的内容

-i:可以直接修改原文件

-e:-e脚本-e脚本可以执行多个脚本

-r:表示使用扩展正则表达式

Address:

1> StartLine, EndLine

比如1,100 从第1行到100行

$: 最后一行

$-1:倒数第二行

2> /RegExp/

/^root/找这个文件中所有以root字符串开头的行

例:sed ‘/root/d’ /etc/fstab 删除文件中所有的root

3> /pattern1/,/pattern2/

第1次被模式1匹配到的行开始,至第1次被模式2匹配到的行结束

4> LineNumber

指定的行

5> StartLine,+N

从StarLine开始,向后的N行

例:sed ‘1,+2d’ /etc/fstab删除3行

Command:

d:删除符合条件的行;

例:sed ‘1,2d’ /etc/fstab删除前两行

p:显示符合条件的行

例:sed‘/^\//d’ /etc/fstab删除以斜线开头的行

sed -n ‘/^\//p‘ /etc/fstab 显示以斜杠开头的行

a \string:在指定的行后面追加新行,内容为“string”

例:sed ‘/^\//a \// hello world’/etc/fstab

i \string:在指定的行前面追加新行,内容为“string”

r FILE:用于合并文件

sed ‘2r /etc/issue’ /etc/fstab

将文件issue里的内容粘贴到fstab的第二行

w FILE:将指定范围内的内容另存至指定的文件中

例:sed -n‘/oot/w /tmp/oot.txt‘ /etc/fstab

-n的作用 禁止打印模式空间的内容

s/pattern模式/string字符串/:查找并替换

g:全局替换

i:忽略字符大小写

例:sed‘s/oot/OOT/’/etc/fstab

例:sed ‘s/^\//#/‘ /etc/fstab将行首斜线替换成井号

例:sed ‘s/\//#/‘ /etc/fstab替换每一行第一次被模式匹配到的串

例:sed ‘s/\//#/g‘ /etc/fstab 全局替换成没有

i:查找时忽略大小写

例:sed ‘s#\(l..e\)#\1r#e‘ sed.txt将所有l开头e结尾的字符创后面加上r

例:sed ‘s#\(l..e\)#\1r#g’ sed.txt   在like love 后面加r

等同于 sed ‘s#l..e#&r#g’ sed.txt

练习:

1取出一个文件路径的父目录名称  如/etc

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

保留其子目录名

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

2删除/etc/greb.conf文件中行首的空白符

sed ‘/^$/d‘ /etc/inittab

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

4删除/etc/inittab文件中开头的#号(井号后面必须有空白字符)

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

5删除/etc/inittab文件中的空白行

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

时间: 2024-08-02 19:01:51

sed 常用方法 脚本范例的相关文章

inotify.sh脚本范例

inotify.sh脚本范例 [[email protected] ~]# cat /server/scripts/inotify.sh#!/bin/bash#parahost01=192.168.1.111src=/dingjiandst=dingjianuser=rsync_backuprsync_passfile=/etc/rsync.passwordinotify_home=/usr/local/inotify-tools-3.14/ #judgeif [ ! -e "$src"

SED单行脚本快速参考(Unix 流编辑器)

------------------------------------------------------------------------- SED单行脚本快速参考(Unix 流编辑器) 2005年12月29日 英文标题:USEFUL ONE-LINE SCRIPTS FOR SED (Unix stream editor) 原标题:HANDY ONE-LINERS FOR SED (Unix stream editor) 整理:Eric Pement - 电邮:pemente[at]no

脚本范例

0-9:[0-9] 10-99:[1-9][0-9] 100-199:1[0-9][0-9] 200-249:2[0-4][0-9] 250-255:25[0-5] 0-255.X.Y.Z. (\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]\.){3}[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]\b) ifconfig | grep -E "(\<([0-9]|[1-9][0-9]|

一个WebLoad 脚本范例

//initial the Agenda function InitAgenda(){ wlGlobals.SaveHeaders = true; wlGlobals.SaveSource = true;    IncludeFile("myFunctionLib.js");  // include an external js file var FolderPath = getAgendaFolder(); //get the folder path which scripts lo

Shell编程------脚本范例

1. 批量添加用户 建立用户名和密码组合的txt文件userdata.txt,如下: username1 123 username2 123 username3 123 username4 123 username5 123 username6 123 批量添加以上用户的脚本是: #! /bin/bash while read line do username=$(echo $line | cut -f1 -d' ') #或 username=$(echo $line | awk '{print

sed常用方法

1.将空格替换成换行 sed "s/ /\n/g" yum.old.txt 2 将换行替换成空格 cat yum.new3.txt |tr "\n" " " 2.将每一行最后的空格+\替换掉 sed "s/ [\]$//g" yum.new.txt 3.在每一行最后添加 \ sed "s/$/ \\\/g" yum.new3.txt 4.将文本中每行字符串后面的空格去掉 #原文件 [[email prote

流编辑器Sed

Sed简介 Sed是一款流编辑工具,用来对文本进行过滤与替换操作,特别是当你想要对几十个配置文件做统一修改时,你会感受到Sed的魅力!Sed通过一次仅读取一行内容来对某些指令进行处理后输出,所以Sed更适合于处理大数据文件.首先,Sed通过文件或管道读取文件内容,但Sed默认并不直接修改源文件,而是将读入的内容复制到缓冲区中,我们称之为模式空间(pattern space),所有的指令操作都是在模式空间中进行的,然后Sed根据相应的指令对模式空间中的内容进行处理并输出结果,默认输出至标准输出(即

Linux学习笔记之grep命令及sed 命令相关选项

#grep  强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来. 根据模式,搜索文本 ,并将符合模式的文本行显示出来,常与正则表达式相结合使用. [[email protected] ~]# grep --h 用法: grep [选项]... PATTERN [FILE]... 在每个 FILE 或是标准输入中查找 PATTERN. 默认的 PATTERN 是一个基本正则表达式(缩写为 BRE). 例如: grep -i 'hello world' menu.h main.c

sed入门详解教程

sed 是一个比较古老的,功能十分强大的用于文本处理的流编辑器,加上正则表达式的支持,可以进行大量的复杂的文本编辑操作.sed 本身是一个非常复杂的工具,有专门的书籍讲解 sed 的具体用法,但是个人觉得没有必要去学习它的每个细节,那样没有特别大的实际意义.网上也有很多关于 sed 的教程,我也是抱着学习的心态来学习 sed 的常见的用法,并进行系统的总结,内容基本覆盖了 sed 的大部分的知识点.文中的内容比较简练,加以实际示例来帮助去理解 sed 的使用. 一.写在前边 1.sed介绍 se