sed笔记

编程能力:
    脚本编程

grep, sed(流编辑器), awk

sed基本用法:
sed: Stream EDitor
    行编辑器 (全屏编辑器: vi)
    
sed: 模式空间
默认不编辑原文件,仅对模式空间中的数据做处理;而后,处理结束后,将模式空间打印至屏幕;

sed [options] ‘AddressCommand‘ file ...
    -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
          love-->Love
    
    &: 引用模式匹配整个串

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]‘

#abc
# hello world
   # hi world
    
    
    
练习:
传递一个用户名参数给脚本,判断此用户的用户名跟其基本组的组名是否一致,并将结果显示出来。

时间: 2024-08-02 04:42:53

sed笔记的相关文章

sed 笔记

sed 笔记介绍sed是非交互式的编辑器.它不会修改文件,除非使用shell重定向来保存结果.默认情况下,所有的输出行都被打印到屏幕上.sed编辑器逐行处理文件(或输入),并将结果发送到屏幕.具体过程如下:首先sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空间),然后处理临时缓冲区中的行,完成后把该行发送到屏幕上.sed每处理完一行就将其从临时缓冲区删除,然后将下一行读入,进行处理和显示.处理完输入文件的最后一行后,sed便结束运行.sed把每一行都存在临时缓冲区中,对这个副本进行编

sed 笔记(三)

sed常见的命令:s(替换).d(删除).a(追加).i(插入) 高级命令:N P D G h(模式空间和保持空间内容替换) /Owner/{ N G D P s/Owner the/Operationg/ } 1. Sed简介 sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到文件末尾.文件内容

sed笔记2

用法11 显示匹配字符串在文本中的行数 {=} 用法12 {n}匹配后读取下一行(操作下一行),不懂见例子      用法13 {N} 大N的用法是:读取匹配行到模式空间,不删除再追加第二行到模式空间,示例:      待续~~~~~     

sed awk 笔记(二)

都说sed awk 运维人员的必备工具.今天起开始整理相关笔记.首先认识一下这两个东西. 共性:使用相同的语法 [address]/pattern/action/flag 都是面向字符流的.从一个文件一次银行的读取输入.并输出到标准输出.即输入驱动的 都是使用正则表达式进行模式匹配的 都允许用户在脚本中指定指令 所以个人认为有几个方面需要突破:语法.正则.编写脚本的思路 [[email protected] test]#今天写的脚本显示洲及所在州的人名 #! /bin/sh awk -F ",&

Sed&awk笔记之sed篇(转)

Sed是什么 <sed and awk>一书中(1.2 A Stream Editor)是这样解释的: Sed is a "non-interactive" stream-oriented editor. It is stream-oriented because, like many UNIXprograms, input flows through the program and is directed to standard output. Sed本质上是一个编辑器,

LVS的持久连接和awk/sed/grep的学习笔记

一.LVS持久连接的模式 1.PPC(persistent port connection) ipvsadm -A|E 192.168.10.1:80 -p 600 定义VIP为192.168.10.1director的80端口为持久连接,也就是只把web服务加入集群服务,可以通过改变端口实现不同服务的持久连接且把不同服务加入集群服务 2.PCC(persistent client connection) ipvsadm -A|E 192.168.10.1:0 -p 600 定义VIP为192.

sed&&awk学习笔记(1)

sed和awk的基本使用 在sed和awk中,每个指令都包括两个部分:模式和过程.模式是由斜杠(/)分割的正则表达式.过程制定一个或多个将被执行的动作. 执行过程中,读取脚本中的第一个指令并检测当前行的模式,如果没有匹配,这个过程被忽略并读取下一个指令.读取所有的指令,而不是读取与输入行匹配的第一条指令. 所有指令被解释并应用于单个行后,sed输出该行并循环处理每个输入行.awk不自动输出行,脚本中的指令控制awk最终所做的事情. 使用sed 调用sed有两种方法:在命令行上指定编辑指令,或者将

Sed&amp;awk笔记之awk篇

http://blog.csdn.net/a81895898/article/details/8482333 Awk是什么 Awk.sed与grep,俗称Linux下的三剑客,它们之间有很多相似点,但是同样也各有各的特色,相似的地方是它们都可以匹配文本,其中sed和awk还可以用于文本编辑,而grep则不具备这个功用.sed是一种非交互式且面向字符流的编辑器(a "non-interactive" stream-oriented editor),而awk则是一门模式匹配的编程语言,因为

Sed&amp;awk笔记之sed篇

http://blog.csdn.net/a81895898/article/details/8482387 Sed是什么 <sed and awk>一书中(1.2 A Stream Editor)是这样解释的: Sed is a "non-interactive" stream-oriented editor. It is stream-oriented because, like many UNIXprograms, input flows through the pr