sed是Linux文本替换利器,核心为s命令,支持正则表达式、分隔符替换、特殊字符转义及条件替换,结合管道、find与脚本可高效实现自动化批量处理,适用于日志分析、配置修改等场景。

在Linux下,
sed
s
sed
s
sed 's/旧字符串/新字符串/g' 文件名
s
/
#
|
旧字符串
新字符串
g
g
例如,如果你有一个名为
example.txt
hello world, hello sed!
hello
hi
sed 's/hello/hi/g' example.txt
hi world, hi sed!
-i
sed -i 's/hello/hi/g' example.txt
-i
sed -i.bak 's/hello/hi/g' example.txt
example.txt.bak
深入
sed
s/pattern/replacement/flags
pattern
flags
首先,关于
pattern
sed 's/[0-9]/_/g'
sed 's/^Word/NewWord/'
^
$
cat
category
cat
sed 's/cat/dog/g'
其次,
replacement
&
sed 's/错误/[&]/g'
pattern
()
LastName, FirstName
FirstName LastName
sed 's/([^,]*), (.*)/ /'
([^,]*)
(.*)
最后是
flags
g
i
i
Error
Error
Error
sed 's/error/warning/gi'
p
-n
sed -n 's/old/new/gp'
w file
sed 's/old/new/w output.txt'
output.txt
NUM
NUM
sed 's/word/new_word/2'
word
在使用
sed
sed
首先是分隔符的选择。默认情况下,
sed
s
/
旧字符串
新字符串
/
/home/user/data
/
sed
#
|
@
/usr/local/bin
/opt/app/bin
sed 's#/usr/local/bin#/opt/app/bin#g' config.txt
sed 's|/usr/local/bin|/opt/app/bin|g' config.txt
#
其次是特殊字符的转义。正则表达式中有很多元字符,如
.
*
+
?
[
]
{}
(
)
^
$
foo.bar
foo_bar
sed 's/foo.bar/foo_bar/g'
sed
.
.
sed 's/foo.bar/foo_bar/g'
*
a*b
a*b
另外,在
replacement
&
&
&
GNU sed
\
sed "s/pattern/replacement new_line/g"
最后,当你在
sed
"
sed
'
sed
old_word="error" new_word="warning" sed "s/$old_word/$new_word/g" log.txt
如果用单引号,
sed
$old_word
Error
sed
一个非常常见的场景是通过管道(pipe)处理其他命令的输出。这意味着你不需要先将一个命令的输出保存到临时文件,再用
sed
sed
root
admin
ps aux | sed 's/root/admin/g'
cat access.log | grep "error" | sed 's/[.*]//'
sed
另一个高效应用是批量处理多个文件。前面提到了
sed -i
sed
find
.txt
old_text
new_text
find . -name "*.txt" -exec sed -i 's/old_text/new_text/g' {} +-exec {} +sed
for
find -exec
条件替换也是
sed
sed '5s/old/new/g' file.txt
sed '3,7s/old/new/g' file.txt
Error
false
true
sed '/Error/s/false/true/g' log.txt
BEGIN
END
sed '/^BEGIN/,/^END/s/old/new/g' config.txt
sed
最后,对于更复杂的
sed
sed
-f
my_script.sed
# 这是注释,sed会忽略 s/apple/orange/g /banana/s/yellow/green/ s/red/blue/
然后执行:
sed -f my_script.sed input.txt
sed
grep
awk
以上就是如何在Linux下使用sed进行文本替换?高效处理文本的实用技巧分享的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号