sed, 是stream editor的缩写,顾名思义,就是个非交互式行编辑器,有以下特点:
其工作原理为:
和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