在Debian系统中,sed(Stream Editor)是一个非常强大的文本处理工具。以下是一些常用的sed命令及其功能:
打印模式空间
sed 'p' file.txt
这会打印文件file.txt的所有行。
删除模式空间
sed 'd' file.txt
这会删除文件file.txt的所有行。
替换模式空间
sed 's/old/new/' file.txt
这会将文件file.txt中的所有old替换为new。
打印指定行
sed -n '3p' file.txt
这会打印文件file.txt的第3行。
删除指定行
sed '3d' file.txt
这会删除文件file.txt的第3行。
打印指定范围行
sed -n '2,4p' file.txt
这会打印文件file.txt的第2到第4行。
删除指定范围行
sed '2,4d' file.txt
这会删除文件file.txt的第2到第4行。
使用正则表达式
sed 's/\bword\b/replacement/g' file.txt
这会将文件file.txt中的所有单词word替换为replacement。
在行首或行尾添加文本
sed 's/^/prefix /' file.txt
sed 's/$/ suffix/' file.txt
这会在每行的开头添加prefix ,在每行的末尾添加 suffix。
使用地址范围
sed '/start/,/end/d' file.txt
这会删除文件file.txt中从包含start的行到包含end的行之间的所有行。
使用地址范围并执行命令
sed '/start/,/end/s/old/new/' file.txt
这会在文件file.txt中从包含start的行到包含end的行之间,将所有的old替换为new。
使用地址范围并打印
sed -n '/start/,/end/p' file.txt
这会打印文件file.txt中从包含start的行到包含end的行之间的所有行。
使用地址范围并删除
sed '/start/,/end/d' file.txt
这会删除文件file.txt中从包含start的行到包含end的行之间的所有行。
使用脚本文件
sed -f script.sed file.txt
这会使用脚本文件script.sed中的命令来处理文件file.txt。
备份文件
sed -i 's/old/new/' file.txt
这会直接修改文件file.txt,将所有的old替换为new。如果你想保留原始文件,可以使用:
sed -i.bak 's/old/new/' file.txt
这会创建一个备份文件file.txt.bak。
这些命令只是sed功能的一部分,sed是一个非常强大的工具,可以用于各种复杂的文本处理任务。更多详细信息和高级用法,可以参考man sed或相关的在线文档。