疾速瓜牛 Linux三剑客 之 sed学习与应用


sed, 是stream editor的缩写,顾名思义,就是个非交互式行编辑器,有以下特点:

  1. 它能执行与编辑器 vi 和 ex 相同的编辑任务
  2. sed 编辑器没有提供交互式使用方式,使用者只能在命令行输入编辑命令、指定文件名,然后在屏幕上查看输出
  3. 没有破坏性,它不会修改文件,除非使用 shell 重定向来保存输出结果。默认情况下,所有的输出行都被打印到屏幕上

其工作原理为:

疾速瓜牛 Linux三剑客 之 sed学习与应用

 

 

 

和awk类似,调用sed命令有两种形式:

sed [options] 'command' file(s)
sed [options] -f scriptfile file(s)

下面结合具体的使用场景来练习一下具体的使用:

文件后添加一行:

sed  ‘$a newLine’ testfile

文件的第五行后添加一行

sed  ‘5a newLine at line6’  testfile

文件的第一行后添加一行

sed  ‘1i newLine test’  testfile

# 可以添加一个完全为空的空行
sed '4 a //'

# 可以添加两个完全为空的空行
sed '4 a //n'

把文件中的awk 替换成 sed, 把2019替换成2022

sed 's/要被取代的字串/新的字串/g' //不会修改原文件,输出到窗口
sed -i 's/要被取代的字串/新的字串/g' //直接修改原文

批量操作当前目录下以 test 开头的文件:

sed -i 's/要被取代的字串/新的字串/g'  ./test*

利用 sed 将 regular_express.txt 内每一行结尾若为 . 则换成 !

sed -i 's//.$//!/g' log.txt

利用 sed 直接在 log.txt 最后一行加入 # This is a test: ($ 代表的是最后一行,而 a 的动作是新增)

sed -i '$a # This is a test' log.txt

要删除第 3 到最后一行:

sed '3,$d' log.txt

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/282733.html

(0)
上一篇 2022年8月28日
下一篇 2022年8月28日

相关推荐

发表回复

登录后才能评论