替换文件中的所有 old 为 new:
sed 's/old/new/g' file.txt
g 表示全局替换,如果不加 g,则只会替换每行的第一个匹配。
将文件中的所有"foo"和"bar"替换为"baz":
sed -e 's/foo/baz/g' -e 's/bar/baz/g' file.txt
2. 删除行
删除文件中包含 pattern 的行:
sed '/pattern/d' file.txt
3. 插入文本
在文件的第 2 行后插入一行文本:
sed '2a New line' file.txt
2a 表示在第 2 行后添加,如果使用 2i 则在第 2 行前添加。
4. 编辑文件并备份
在文件中查找并替换文本,同时备份原文件:
sed -i.bak 's/old/new/g' file.txt
5. 使用正则表达式
使用正则表达式匹配文件中的文本:
sed -n '/pattern/p' file.txt
-n 表示禁止自动输出模式空间内容,/pattern/p 表示查找包含 pattern 的行并输出。
6、删除文件中的所有空行:
sed '/^$/d' file.txt
7、删除文件中包含特定字符串的行:
sed -i '/<string-to-delete>/d' <filename>
<string-to-delete> 是要删除的字符串,
<filename> 是要操作的文件名。
例如,如果要删除文件 example.txt 中包含字符串 test 的行,可以使用以下命令:
sed -i '/test/d' example.txt
注意,这个命令会直接修改文件,请确保备份好文件或者确认操作无误再进行。
8、只保留含有特定字符串的行:
sed -i '/特定字符串/!d' 文件名
特定字符串替换为需要保留的字符串,文件名替换为需要处理的文件名。
这个命令的意思是,对于文件中的每一行,如果不含有特定字符串,则将该行删除,最终只保留含有特定字符串的行。
如果想输出到一个新的文件中,可以使用如下命令:
sed '/特定字符串/!d' 原文件名 > 新文件名
其中,特定字符串和原文件名替换为相应的字符串和文件名,新文件名为输出的新文件名。