Linux文本处理
Linux文本处理:数据处理命令sed
- Vim 采用的是交互式文本编辑模式,你可以用键盘命令来交互性地插入、删除或替换数据中的文本。但 sed 命令不同,它采用的是流编辑模式,最明显的特点是,在 sed 处理数据之前,需要预先提供一组规则,sed 会按照此规则来编辑数据。 - sed 会根据脚本命令来处理文本文件中的数据,这些命令要么从命令行中输入,要么存储在一个文本文件中,此命令执行数据的顺序如下: - 每次仅读取一行内容; - 根据提供的规则命令匹配并修改数据。注意,sed 默认不会直接修改源文件数据,而是会将数据复制到缓冲区中,修改也仅限于缓冲区中的数据; - 将执行结果输出。 - 当一行数据匹配完成后,它会继续读取下一行数据,并重复这个过程,直到将文件中所有数据处理完毕。 - 语法 sed [-hnV][-e 脚本][-f 脚本][文本文件] - 参数说明: -e 脚本 :以选项中指定的script来处理输入的文本文件。 -f 脚本:以选项中指定的script文件来处理输入的文本文件。 -n :仅显示script处理后的结果。 - 动作说明: a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~ c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行! d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚; i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行); p :列印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~ s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦! ****sed 后面接的动作,请务必以''两个单引号括住 - 例子 ```shell #######以行为单位的删除 #将第 2~5 行删除! nl /etc/passwd | sed '2,5d' #只要删除第 2 行 nl /etc/passwd | sed '2d' #要删除第 3 到最后一行 nl /etc/passwd | sed '3,$d' #######以行为单位的新增 #在testfile文件的第四行后添加一行,并将结果输出到标准输出 sed -e 4a\newLine testfile #在第二行后(亦即是加在第三行)加上『drink tea?』字样! nl /etc/passwd | sed '2a drink tea' #在第二行前加上『drink tea』字样! nl /etc/passwd | sed '2i drink tea' #将第2-5行的内容取代成为『No 2-5 number』 nl /etc/passwd | sed '2,5c No 2-5 number' #######以行为单位的替换与显示 #仅列出 /etc/passwd 文件内的第 5-7 行 nl /etc/passwd | sed -n '5,7p' #搜索 /etc/passwd有root关键字的行 nl /etc/passwd | sed -n '/root/p' 数据的搜寻并删除 nl /etc/passwd | sed '/root/d' #删除/etc/passwd所有包含root的行,其他行输出 数据的搜寻并执行命令 nl /etc/passwd | sed -n '/root/{s/bash/blueshell/;q}' 数据的搜寻并替换 sed 's/要被取代的字串/新的字串/g' sed 's/test/trial/g' data4.txt 多点编辑 一条sed命令,删除/etc/passwd第三行到末尾的数据,并把bash替换为blueshell nl /etc/passwd | sed -e '3,$d' -e 's/bash/blueshell/' ```
顶部
收展
底部
[TOC]
目录
Linux文本处理:查看文本内容
Linux文本处理:vim编辑器
Linux文本处理:输入输出重定向
Linux文本处理:文本查找命令grep
Linux文本处理:数据处理命令sed
Linux文本处理:文本分析工具awk
相关推荐
Linux文件目录管理
Linux打包压缩
Linux软件安装
Linux用户和用户组管理
Linux文件系统管理
Linux系统管理