linux常用命令-sed

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
 
 &: 引用模式匹配整个串

练习:
#
# /etc/fstab
# Created by anaconda on Sun Jun 21 02:15:00 2015
#
# Accessible filesystems, by reference, are maintained under ‘/dev/disk‘
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=57d85756-7680-4c7c-9125-6ad67dae2c45 /                       ext4    defaults        1 1
UUID=2622a4b4-ddc9-47a3-aa2b-f06bc9bec085 /boot                   ext4    defaults        1 2
UUID=33d94759-fa01-4c4f-b4ac-bf3a1fe5e84f swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
[[email protected] ~]# sed 1,2d /etc/fstab
# /etc/fstab
# Created by anaconda on Sun Jun 21 02:15:00 2015
#
# Accessible filesystems, by reference, are maintained under ‘/dev/disk‘
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=57d85756-7680-4c7c-9125-6ad67dae2c45 /                       ext4    defaults        1 1
UUID=2622a4b4-ddc9-47a3-aa2b-f06bc9bec085 /boot                   ext4    defaults        1 2
UUID=33d94759-fa01-4c4f-b4ac-bf3a1fe5e84f swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
[[email protected] ~]#

练习:

[[email protected] ~]# sed ‘3,$d‘ /etc/fstab

#
[[email protected] ~]#

练习:

[[email protected] ~]$ sed ‘$r /etc/issue‘ /etc/fstab

#
# /etc/fstab
# Created by anaconda on Sun Jun 21 02:15:00 2015
#
# Accessible filesystems, by reference, are maintained under ‘/dev/disk‘
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=57d85756-7680-4c7c-9125-6ad67dae2c45 /                       ext4    defaults        1 1
UUID=2622a4b4-ddc9-47a3-aa2b-f06bc9bec085 /boot                   ext4    defaults        1 2
UUID=33d94759-fa01-4c4f-b4ac-bf3a1fe5e84f swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
Red Hat Enterprise  Server release 6.6 (Santiago)
\m

[[email protected] ~]$

练习:

[[email protected] ~]# sed ‘/oot/d‘ /etc/fstab

#
# /etc/fstab
# Created by anaconda on Sun Jun 21 02:15:00 2015
#
# Accessible filesystems, by reference, are maintained under ‘/dev/disk‘
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=57d85756-7680-4c7c-9125-6ad67dae2c45 /                       ext4    defaults        1 1
UUID=33d94759-fa01-4c4f-b4ac-bf3a1fe5e84f swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
[[email protected] ~]#

练习:

[[email protected] ~]# sed -n ‘/^#/p‘ /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sun Jun 21 02:15:00 2015
#
# Accessible filesystems, by reference, are maintained under ‘/dev/disk‘
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
[[email protected] ~]#

练习:

[[email protected] ~]$
[[email protected] ~]$ sed ‘/oot/w /tmp/oot.txt‘ /etc/fstab

#
# /etc/fstab
# Created by anaconda on Sun Jun 21 02:15:00 2015
#
# Accessible filesystems, by reference, are maintained under ‘/dev/disk‘
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=57d85756-7680-4c7c-9125-6ad67dae2c45 /                       ext4    defaults        1 1
UUID=2622a4b4-ddc9-47a3-aa2b-f06bc9bec085 /boot                   ext4    defaults        1 2
UUID=33d94759-fa01-4c4f-b4ac-bf3a1fe5e84f swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
[[email protected] ~]$ cat /tmp/oot.txt
UUID=2622a4b4-ddc9-47a3-aa2b-f06bc9bec085 /boot                   ext4    defaults        1 2
[[email protected] ~]$

练习:

[[email protected] ~]$ sed ‘s/oot/OOT/‘ /etc/fstab

#
# /etc/fstab
# Created by anaconda on Sun Jun 21 02:15:00 2015
#
# Accessible filesystems, by reference, are maintained under ‘/dev/disk‘
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=57d85756-7680-4c7c-9125-6ad67dae2c45 /                       ext4    defaults        1 1
UUID=2622a4b4-ddc9-47a3-aa2b-f06bc9bec085 /bOOT                   ext4    defaults        1 2
UUID=33d94759-fa01-4c4f-b4ac-bf3a1fe5e84f swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
[[email protected] ~]$

练习:

[[email protected] ~]$ sed ‘s/\//#/g‘ /etc/fstab

#
# #etc#fstab
# Created by anaconda on Sun Jun 21 02:15:00 2015
#
# Accessible filesystems, by reference, are maintained under ‘#dev#disk‘
# See man pages fstab(5), findfs(8), mount(8) and#or blkid(8) for more info
#
UUID=57d85756-7680-4c7c-9125-6ad67dae2c45 #                       ext4    defaults        1 1
UUID=2622a4b4-ddc9-47a3-aa2b-f06bc9bec085 #boot                   ext4    defaults        1 2
UUID=33d94759-fa01-4c4f-b4ac-bf3a1fe5e84f swap                    swap    defaults        0 0
tmpfs                   #dev#shm                tmpfs   defaults        0 0
devpts                  #dev#pts                devpts  gid=5,mode=620  0 0
sysfs                   #sys                    sysfs   defaults        0 0
proc                    #proc                   proc    defaults        0 0

练习:

[[email protected] ~]$ nano sed.txt
[[email protected] ~]$ sed ‘s/l..e/&r/g‘ ./sed.txt
liker
lover
[[email protected] ~]$ cat ./sed.txt
like
love
[[email protected] ~]$

练习:

[[email protected] ~]$ sed ‘s/l\(..e\)/L\1/g‘ ./sed.txt
Like
Love
[[email protected] ~]$

练习:

[[email protected] ~]# history | sed ‘s#^[[:space:]]*##g‘
1  history | sed ‘s#[[:space:]]*##g’
2   sed -r ‘[email protected]^[[:space:]][email protected]@g‘ /etc/grub.conf
3  history | sed ‘s#[[:space:]]+##g’
4  history | sed ‘s#[[:space:]]+##g‘
5  history | sed ‘s#[[:space:]]*##g‘
6  history | sed ‘s#^[[:space:]]*##g‘

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-10-13 01:35:54

linux常用命令-sed的相关文章

Linux 常用命令sed/awk/grep及正则表达式

linux命令sed和awk sed 主要功能 sed,stream editor.是一个"非交互式"字符流编辑器.输入流通过程序并输出到标准输出端. sed主要用来自动编辑一个或者多个文件(替换,插入,删除,追加,更改) 常见应用 抽区域 匹配正则表达式 比较域 增加,附加,替换 执行过程 sed一次处理一行或多行内容.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区

Linux常用命令——sed

sed 字符流编辑器 sed 是Stream Editor(字符流编辑器)的缩写,简称刘编辑器.sed 是操作.过滤和转换文本内容的强大的工具.常用功能包括对文件实现快速增删改查,其中查询的功能中最常用的两大功能是过滤(过滤制定字符串)取行(取出指定行)语法格式:sed[选项][sed内置命令字符][输入文件]注意:1.sed 以及后面的选项.命令和输出文件,每个元素之间都要至少要有一个空格 参数选项: 参数 说明 -i 直接修改文件内容 -n 静默模式,仅打印和sed命令匹配的内容 -r 支持

Linux常用命令大全

系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuinfo 显示CPU info的信息 cat /proc/interrupts 显示中断 cat /proc/meminfo 校验

(转)linux常用命令

原地址:http://www.cnblogs.com/svage/p/3700122.html 1.删除目录及子目录下的 .svn目录 find . -type d -name ".svn" | xargs rm -rf 2./tmp 目录的权限 drwxrwxrwt rwt的意思是:对目录有执行权限,但不能删除,即sticky bit rwx : 可读可写可执行 4+2+1 3.改变群组.用户.权限 chgrp   群组名   改变的目录 groupadd -g gid gname

linux常用命令整理(五):shell基础

大家好,我是会唱歌的程序猿------ 最近在学习linux,闲暇之余就把这些基本的命令进行了整理,希望大家能用的上,整理的的目的是在忘了的时候翻出来看看^?_?^,前后一共分为五个部分: linux基本命令整理(一):常用命令 地址:http://www.cnblogs.com/devinCat/p/7247824.html linux基本命令整理(二):用户.用户组.文件系统和网络 地址:http://www.cnblogs.com/devinCat/p/7247847.html linux

Linux常用命令收集

Linux常用命令:if.for.which.ps.grep.netstat.lsof.head.tail.sed.awk.cut.sort.uniq.dos2unix.find.xargs.kill) 一.linux查看占用内存/cpu最高的进程情况(注明:可以使用一下命令查使用内存最多的10个进程) 1.查看占用cpu最高的进程 ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head 2.查看占用内存最高的进程 ps aux|head -1

linux常用命令技巧

原文地址 这篇文章来源于Quroa的一个问答<What are some time-saving tips that every Linux user should know?>-- Linux用户有哪些应该知道的提高效率的技巧.我觉得挺好的,总结得比较好,把其转过来,并加了一些自己的理解. 首先,我想告诉大家,在Unix/Linux下,最有效率技巧的不是操作图形界面,而是命令行操作,因为命令行意味着自动化.如果你看过<你可能不知道的Shell>以及<28个Unix/Linu

Linux常用命令小结(续)

20. mysql mysql --host=127.0.0.1 --port=3306 --database=test --user=test --password=test --default-character-set=utf8 21. 脚本求两个文件的相同集合 test1   test2 1           2 2           3 3           4 cat test1 test2 | sort | uniq -d (result: 2 3) cat test1 te

Linux常用命令速查备忘

Linux常用命令速查备忘 PS:备忘而已,详细的命令参数说明自己man 一. 启动,关机,登入,登出相关命令 [login] 登录 [logout] 登出 [exit] 登出 [shutdown] 停止系统 [halt] 停止系统 [reboot] 重启动 [poweroff] 切断电源 [sync] 把内存里的内容写入磁盘 [lilo] 安装lilo启动管理程序 [grub] 安装lilo启动管理程序 二. Shell相关命令 [chsh] 切换Shell [history] 显示命令履历