linux学习笔记六(sed基本用法)

前言:记录基本的sed用法。

内容:

  1. 基本的工具grep ,sed(流编辑器),awk。

    注意事项:sed默认是不对源文件进行修改(-i选项能够修改源文件)

  2. sed的基本用法:

    sed: Stream EDitor

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

sed: 模式空间

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

sed [options] ‘AddressCommand‘ file ...

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

-i: 直接修改原文件

-e SCRIPT -e SCRIPT:可以同时执行多个脚本

-f /PATH/TO/SED_SCRIPT

sed -f /path/to/scripts  file

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

Address:

1、StartLine,EndLine

比如1,100

$:最后一行

2、/RegExp/(正则表达式)

/^root/

3、/pattern1/,/pattern2/

第一次被pattern1匹配到的行开始,至第一次被pattern2匹配到的行结束,这中间的所有行

4、LineNumber

指定的行

5、StartLine, +N

从startLine开始,向后的N行。

Command:

d: 删除符合条件的行;

p: 显示符合条件的行;

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

\n:可以用于换行

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

r FILE: 将指定的文件的内容添加至符合条件的行处

w FILE: 将地址指定的范围内的行另存至指定的文件中; 

s/pattern/string/修饰符: 查找并替换,默认只替换每行中第一次被模式匹配到的字符串

加修饰符

g: 全局替换

i: 忽略字符大小写

s///: s###, [email protected]@@

\(\), \1, \2

l..e: like-->liker

 love-->lover

 like-->Like

&: 引用模式匹配整个串

3.练习:

sed ‘1,3d‘ /etc/fstab

sed -n ‘1,6p‘ /etc/fstab

sed -n ‘/^#/p‘ /etc/fstab 

sed -n ‘/oot/p‘ /etc/fstab 

sed -n ‘6,$p‘ /etc/fstab 

sed -n ‘10,+5p‘ /etc/fstab 

sed ‘/^[[:space:]]*/d‘ /etc/fstab 

sed ‘/^[[:space:]]*/‘ /etc/fstab 

sed ‘/^\//d‘ /etc/fstab

sed -n ‘/^L/a  \#hello world‘ /etc/fstab

sed ‘/^L/i  \#hello world \n #hello linux‘ /etc/fstab

sed ‘1,2r /etc/issue‘ /etc/fstab

sed ‘1,2w /var/w.txt‘ /etc/fstab 

sed ‘s/oot/OOT/‘ /etc/fstab 

sed ‘s/^#/\//g‘ /etc/fstab 

sed ‘s#l..e#&r#‘ 001

sed ‘s#\(l..e\)#\1r#‘ /etc/fstab

sed ‘s#l\(..e\)#L\1#‘ 001 

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

基名:

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

总结:总结还不太完整,后续添加。

时间: 2024-08-04 19:46:55

linux学习笔记六(sed基本用法)的相关文章

Linux学习笔记13——sed基本用法

三大基本文本处理工具:grep,sed(流编辑器),awk sed: Stream EDitor 行编辑器:sed全屏编辑器:vi sed: 模式空间默认不编辑文件本身,仅对模式空间中的数据做处理:而后,处理结束后,将模式空间打印至屏幕: sed [options] 'AddressCommand' file ...(对这些文件中的符合这个地址address指定范围内的行,执行以下命令编辑)-n: 静默模式,不再默认显示模式空间中的内容-i: 直接修改原文件(这个要注意!!!!!!)-e SCR

Linux学习笔记之sed命令

讷于言而敏于行    --<论语·里仁> sed命令是一个用在对输入流进行处理的文本处理工具.掌握它能够更好地帮助管理Linux和处理日志文件. 用法: sed [option] 'command' 输入流 常用option: -n:安静模式,一般如果没有加-n选项,输入流中所有的行将会被列出,加入-n后只会列出'command'处理过的行.一般与 command中p命令连用. -r:默认sed只是支持一般的正则表达式,如果加上-r参数表示让sed支持扩展的正则表达式. -i:插入,如果输入流

shell脚本学习笔记之sed命令用法

sed基本用法 sed:stream editor 行编辑器 sed:模式空间 将匹配的文本内容储存到模式空间中 默认不编辑原文件,仅对模式空间中的数据做处理,而后,处理结束后,架构模式空间的内容显示 sed -n -i:直接修改原文件 -e script -e script:可以同时执行多个脚本 -f file sed -f /scripts  file -r:表示使用扩展正则表达式 sed 'adresscommand' file... -n:静默模式,不再默认显示模式空间中的内容,即只显示

linux学习笔记六(vim编辑器)

前言:vim编辑器是一个很强的编辑器,一定要学会灵活的运用才能够事半功倍的效果. 内容: 1.vim编辑器的简单说明. vi: Visual Interface vim: VI iMproved 全屏编辑器,模式化编辑器 2.打开文件  # vim /path/to/somefile  vim +# :打开文件,并定位于第#行   vim +:打开文件,定位至最后一行  vim +/PATTERN : 打开文件,定位至第一次被PATTERN匹配到的行的行首 3.关闭文件   首先要进入到末行模式

Linux学习笔记(六)-Linux服务程序的安装和卸载

Linux操作系统的运行级别 1 单用户模式,root权限,用于系统维护,禁止远程登录,就像Windows下的安全模式登录. 2 多用户模式,没有NFS网络支持 3 完整的多用户文本模式,有NFS,登录后进入控制台命令行模式 4 系统未使用,保留一般不用,在一些特殊情况下可以使用它来做一些事情 5 图形化模式,登陆后进入图形GUI模式,X Window系统 6 重启模式,默认运行级别不能设为6,否则不能正常启动 显示当前运行级别命令: runlevel;进入其他运行级别: init level

Linux学习笔记:sed

sed命令:vim的末行命令(ex模式命令): sed:Stream EDitor,流编辑器,以行为单位对一个或多个文件进行编辑处理:每一次sed都会处理给定文件中的一行内容. 在sed处理文本时,将正在处理的当前行存储到临时的缓冲区中,称为"模式空间":用当前行去匹配给定的PATTERN,如果能匹配,则使用command编辑处理:如果不匹配,则默认输出至标准输出:然后继续处理下一行,直到文件的末尾. 默认情况下,sed的所有处理行为不会影响源文件的内容: 我们一般会使用sed命令来自

linux 学习笔记六 tail 命令

#tail -f -n100 catalina.out 含义 从文件尾部监视catalina.out 文件   要看文件尾部100行 #tail -f -n100  catalina,out >nohup.out & -----也可以指定输出文件的路径 &意味着进入后台 >输出内容到指定文件  覆盖原有文件内容 >>输出内容不覆盖  而是追加内容到原有文件 #tail -f -n100 catalina.out >nohup.out& 等价于 #noh

linux学习笔记六:加载USB移动硬盘(NTFS格式)

1.       下载rpmforge,下载对应的版本,还有32位与64位也要对应上.rpmforge拥有4000多种CentOS的软件包,被CentOS社区认为是最安全也是最稳定的一个软件仓库,以便于之后通过yum来安装软件包. 下载地址"http://pkgs.repoforge.org/rpmforge-release/" centos 6.5对应的版本是pmforge-release-0.5.3-1.el6.rf.x86_64.rpm Rhel5对应的版本是rpmforge-r

【linux学习笔记六】压缩 解压缩命令

所有的压缩文件一定要写压缩格式的扩展名 .zip格式压缩 #压缩文件 zip 压缩文件名 源文件 #压缩目录 zip -r 压缩文件名 源目录 #解压缩 unzip 压缩文件 .gz格式压缩 #压缩为.gz格式的压缩文件 源文件会消失 gzip 源文件 #压缩为.gz格式的压缩文件 源文件保留 gzip -c 源文件 > 压缩文件 #压缩目录下所有的子文件 但不能压缩目录 gzip -r 目录 #解压缩 gzip -d 压缩文件 gunzip 压缩文件 .bz2格式压缩 #压缩为.bz2格式 不