flying-tiger

一般在实际使用编辑器的过程中 , 常需要执行替换文件中的字符串、移动、删除、与搜寻数据行等等动作。当然 , 一般交互式编辑器(如 vi、emacs)都能做得到上述功能 , 但文件一旦有大量上述编辑需求时 , 则用它们编辑十分没有效率。本文列举一些常用的sed的使用范例,以备不时之需。


替换数据

1.把开头/结尾为str1的行替换为str2:

sed -i \'s/^str1.*/str2/\'  filename  ###以str1开头
sed -i \'s/.*str1$/str2/\'  filename  ###以str1结尾
sed -i \'s/.*str1.*/str2/\'  filename  ###含有str1

2.将文件中含 "arr" 字符串的数据行中的 "str1" 字符串 , 替换成为 "str2" 字符串:

sed -e \'/arr/s/str1/str2/g\' filename  ##含有g说明是全局替换

3.将文件中第 5 行数据 , 替换成句子"hello world!!!"

sed -e \'5c\hello world!!!\' filename

4.将文件中 1 至 100 行 , 替换成如下两行:

how are you?
my name is feige.

命令如下:

sed -e \'1,100c\
How are you?\
my name is feige.
\' filename

删除数据

1.删除空行:

sed -e \'/^ *$/d\' filename   ### *号前面有一个空格符哦~

2.删除含有指定字符串str的行:

sed -f \'/str/d\' filename

移动数据

1.将文件中的前 100 数据 , 搬到文件中第 300 后输出。其命令如下:

sed -f mov.txt  targetfile  ## targetfile是要操作的文件,mov.txt里面放的是操作指令

其中mov.txt文档的内容为:

1,100{
H
d
}
300G

2.将from.txt文件中含 "phi" 字符串的数据行 , 移动到to.txt文件中储存。其命令如下:

sed -e \'/phi/w to.txt\'  from.txt

3.将 from.txt文件内容 , 移动至to.txt文件中含 "beta" 字符串的数据行。其命令如下:

sed -e \'/beta/r  from.txt\' to.txt

搜索数据

1.将文件中含 "omega" 字符串的数据输出:

sed -f grep.txt  targetfile

其中grep.txt的内容如下:

/omega/b
N
h
s/.*\n//
/omega/b
g
D

今天就更新这么多,以后会在本文中不定期更新有用的sed相关命令。

分类:

技术点:

相关文章:

  • 2021-12-20
  • 2021-12-10
  • 2021-12-10
  • 2021-09-01
  • 2021-10-21
  • 2021-10-25
  • 2021-05-11
  • 2018-07-01
猜你喜欢
  • 2021-08-23
  • 2021-12-12
  • 2021-12-20
  • 2021-11-20
  • 2021-08-04
  • 2021-12-10
  • 2021-12-10
相关资源
相似解决方案