在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
或相关的在线文档。