一文读懂sed工具:shell编程中的瑞士军刀
  WnwLYQFkydn6 2023年11月02日 32 0

一文读懂sed工具:shell编程中的瑞士军刀_删除文件


sed是一个流编辑器,用来处理文本。它通常用于以下情况:

  • 把文本文件整行替换成别的内容
  • 把文本文件中指定的文本替换为其他文本
  • 根据指定的条件只输出文件中的某些行
  • 在文件末尾追加内容
  • 删除文件中的某些行

以下是一些常用的sed命令和用法:

  1. 替换文件中的文本:sed 's/old/new/g' file 这个命令会把file文件中的所有"old"替换成"new"。
  2. 替换文件中的特定行:sed '3aThis is line 3' file 这个命令会在file文件的第3行前插入一行新的文本"This is line 3"。
  3. 显示文件中特定的行:sed -n '3p' file 这个命令会打印出file文件的第3行。
  4. 在文件末尾追加内容:sed '/pattern/aThis is the new line' file 这个命令会在file文件的每一行末尾(除了包含"pattern"的那一行)都追加一行新的文本"This is the new line"。
  5. 删除文件中的空行:sed '/^$/d' file 这个命令会删除file文件中的所有空行。

下面是一些更复杂的sed命令和用法:

  1. 在匹配到的行的前后添加文本:sed '/pattern/s/^/Before: /;s/ *$//' file 这个命令会在file文件中匹配到"pattern"的那一行的前面添加一行"Before: ",并且在该行的后面删除所有的空格。
  2. 使用正则表达式进行匹配:sed -n '/^[0-9]{3}-[0-9]{2}-[0-9]{4}$/p' file 这个命令会打印出file文件中所有符合日期格式(YYYY-MM-DD)的行。
  3. 在两个指定行之间插入内容:sed '3,5i\This is the inserted line' file 这个命令会在file文件的第3行和第5行之间插入一行新的文本"This is the inserted line"。

基本用法

sed [选项参数] ‘command’ filename

  1. 选项参数说明

选项参数

功能

-e

直接在指令列模式上进行sed的动作编辑。

  1. 命令功能描述

命令

功能描述

a

新增,a的后面可以接字串,在下一行出现

d

删除

s

查找并替换

sxh@learn-basis:shell$ touch sed.txt
sxh@learn-basis:shell$ vi sed.txt 
sxh@learn-basis:shell$ cat sed.txt //数据准备
dong shen
guan zhen
wo  wo
lai  lai

le  le
sxh@learn-basis:shell$ sed '2a hi hao' sed.txt 
dong shen			//将“hi hao”这个单词插入到sed.txt第二行下,打印。
guan zhen
hi hao
wo  wo
lai  lai

le  le
sxh@learn-basis:shell$ cat sed.txt  //文件不会有变化,只是输出有变化
dong shen
guan zhen
wo  wo
lai  lai

le  le
sxh@learn-basis:shell$ sed '/wo/d' sed.txt //删除sed.txt文件所有包含wo的行
dong shen
guan zhen
lai  lai

le  le
sxh@learn-basis:shell$ sed 's/wo/ni/g' sed.txt   //将sed.txt文件中wo替换为ni
dong shen
guan zhen
ni  ni
lai  lai

le  le
sxh@learn-basis:shell$ sed -e '2d' -e 's/wo/ni/g' sed.txt 
dong shen    //将sed.txt文件中的第二行删除并将wo替换为ni
ni  ni
lai  lai

le  le
sxh@learn-basis:shell$ 
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  jnZtF7Co41Wg   2023年12月06日   27   0   0 sedlinux数据
  uvM09mQNI0hF   2023年11月19日   29   0   0 sedshell字符串
  eHipUjOuzYYH   2023年12月06日   33   0   0 sedbootstrapIPV6
  xIUntf9oR6GI   2023年11月28日   31   0   0 sedvim基础命令
  oIa1edJoFmXP   2023年11月24日   31   0   0 AppsedVue
WnwLYQFkydn6