自学linux指令分析-sed

自学linux指令分析-sed

1·命令格式

 sed [-nefri]   /输入文本/‘command’   文件   

2·命令参数

-n                          取消默认输出

-i                            改变输出的内容

-e                          进行多项编辑,即对输入行应用多条sed命令时使用. 直接在指令列模式上进行 sed 的动作编辑

-f                           指定sed脚本的文件名. 直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作

-r                           sed 的动作支援的是延伸型正则表达式的语法。(预设是基础正则表达式语法

常用指令:
        a ∶ 新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)
        c ∶ 取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行
        d ∶ 删除,因为是删除,所以 d 后面通常不接任何内容
         i ∶ 插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行)
         p∶ 打印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起用
         s∶ 取代,可以直接进行替换的工作。通常这个 s 的动作可以搭配正则表达式。例如 1,20s/old/new/g

3、命令功能

(删除,修改,替换,添加)核心命令之一,(桃园三结义,老二)

4、命令范列

            实列一:已知文件test.txt内容为:

             Test

             liyao

             oldboy

              请给出打印test.txt内容时,不包含oldboy字符串的命令

              命令一:sed /oldboy/d test.txt 

[[email protected] tmp]# cat test.txt
test
liyao
oldboy
[[email protected] tmp]# sed /oldboy/d test.txt
test
liyao

             命令二: sed -n /oldboy/p test.txt    只显示oldboy

[[email protected] tmp]# cat test.txt 
test
liyao
oldboy

[[email protected] tmp]# sed -n /oldboy/p test.txt
oldboy

[[email protected] ~]# sed -n 20,30p ett.txt

20

。。。

30

把/目录下及其子目录下所有以扩展名ett.txt结尾的文件中包含oldboylinux的字符串全部替换为dboywindow

[[email protected] ~]# echo oldboylinux >ett.txt

[[email protected] ~]# cat ett.txt

  • oldboylinux

[[email protected] ~]# cp ett.txt  /etc/

[[email protected] ~]# cp ett.txt  /opt/

[[email protected] ~]# sed s#oldboylinux#oldboywindows#g ett.txt  此条只是改变了输出,但源文件还没有改

(S表示编辑替换

g表示全部替换)

  • oldboywindows

[[email protected] ~]# cat ett.txt

Oldboylinux

[[email protected] ~]# sed -i s#oldboylinux#oldboywindows#g ett.txt (sed –i表示改变内容)

[[email protected] ~]# cat ett.txt

  • oldboywindows

[[email protected] ~]# find / -type f -name "ett.txt" 查找原文件

/etc/ett.txt

/root/ett.txt

/opt/ett.txt

[[email protected] ~]# find / -type f -name "ett.txt"|xargs sed -i s#oldboylinux#oldboywindows#g  答案

[[email protected] ~]# cat /etc/ett.txt

  • oldboywindows

[[email protected] ~]# cat /opt/ett.txt

Oldboywindows

[[email protected] ~]# find / -type f -name "ett.txt"|xargs cat通过管道|  逐行处理,接指令cat(查看内容)

  • oldboywindows
  • oldboywindows
  • oldboywindows

[[email protected] ~]# find / -type f -name "ett.txt"|xargs ls  通过管道|  逐行处理,接指令ls(查看列表)

/etc/ett.txt  /opt/ett.txt  /root/ett.txt

时间: 2024-08-03 23:42:21

自学linux指令分析-sed的相关文章

自学linux指令分析-ls

自学linux指令分析-ls 1·命令格式 ls [option] [directory-list] ls [参数][目录名] 2·命令参数    -a, –all 列出目录下的所有文件,包括以 . 开头的隐含文件. -A, –almost-all 列出除了 . 及 .. 以外的任何项目 –author 印出每个文件的作者 -b, –escape 把文件名中不可输出的字符用反斜杠加字符编号的形式列出. –block-size=大小块以指定<大小>的字节为单位 -B, –ignore-backu

自学linux指令分析-head

自学linux指令分析-head 1·命令格式 head [参数][文件] 2·命令参数 -q                     隐藏文件名 -v                     显示文件名 -c<字节>           显示字节数 -n<行数>           显示的行数 3.命令功能 头部  显示文件头部-n, 行数,默认显示头部10行 4.命令范列 [[email protected] ~]# head -5 ett.txt 12345

自学linux指令分析-vi

自学linux指令分析-vi 1·命令格式 vi  file-list vi [文件名] 2.命令功能 vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器. 3.使用方式 执行 vi oldboy.txt进入 vi 编辑器(默认是命令模式),点击 a 或者 i 进入编辑模式, 敲入内容I am studying linux,然后按键盘上的esc键退出编辑模式(进入命令模式), 最后敲 ;wq保存并退出,wq解释 write quit. 如果只是查看,可以

自学linux指令分析-seq

自学linux指令分析-seq 1·命令格式 seq - print a sequence of numbers 打印数字序列 2·命令参数 -f                      用来格式化输出 -s                      横着打出来,  seq -s  "  "   5     1 2 3 4 5 -w                     输出同宽数列,不足的位数用0补齐 3.命令功能 打印数字序列,类似echo {1..5} 4.命令范列 [[em

自学linux指令分析-find

自学linux指令分析-find 1·命令格式 find pathname -options [-print -exec -ok ...] find / -type f -name "freedom" 2·命令参数 -print                                        将查找到的文件输出到标准输出 -exec   command   {} \;              将查到的文件执行command操作,{} 和 \;之间有空格 -ok    

自学linux指令分析-xargs

自学linux指令分析-xargs 1·命令格式 指令|xargs 指令 2·命令参数 3.命令功能 管道功能,将前面的指令传给后面逐行执行 4.命令范列 [[email protected] tmp]# find / -type f -name "test.txt"   /etc/test.txt/mnt/test.txt/tmp/test.txt[[email protected] tmp]# find / -type f -name "test.txt"|xa

自学linux指令分析-alias

自学linux指令分析-alias 1·命令格式 alias name='command line' alias name='command "I am free man." ' 2.命令功能 显示及修改别名. 1)通过危险命令加一些保护参数,防止人为误操作, 2)把很多复杂的字符串命令变成一个简答的字符串或命令 3.命令范列 [[email protected] tmp]# cat ~/.bashrc# .bashrc # User specific aliases and func

20135239益西拉姆 Linux内核分析 汇编一个简单的c程序并分析其指令过程

益西拉姆+<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 第一周linux内核分析 学习笔记 一.计算机是如何工作的? 什么是冯诺依曼体系结构? 简单来讲就是存储程序计算机,而存储程序计算机又是指从硬件角度来看, X86汇编基础 学习笔记 详细内容都写在笔记中.再次不多说. 总结:以前一直搞不太懂汇编代码,学的不明不白,虽然现在也是学的不是太明白,至少知道了各个代码什么意思,以及该如何表现,这让我觉得老师的课时

Linux内核分析期末总结

<Linux内核分析>期末总结 20135313吴子怡.北京电子科技学院 Chapter1 往期博客传送门 (1)计算机是如何工作的:Linux内核分析——第一周学习笔记 (2)操作系统是如何工作的:Linux内核分析——第二周学习笔记 (3)Linux系统启动过程:Linux内核分析——第三周学习笔记 (4)系统调用的方法: Linux内核分析——第四周学习笔记 Linux内核实验作业四 (5)分析system_call中断处理过程: Linux内核分析——第五周学习笔记 实验作业:使gdb