推荐答案
-- -------------------- ---- ------- - ---- --- -------------- --- --------------- --- -------- --- ---------- --- --------- - ---- -- -------- ------------ -- ------ -- ------ -- --------- -- --------- -- -----
本题详细解读
1. 常用选项
- -i: 直接修改文件内容,而不是输出到标准输出。例如,
sed -i 's/foo/bar/' file.txt
会将file.txt
中的foo
替换为bar
。 - -n: 取消默认输出,仅打印处理过的行。通常与
p
操作一起使用,例如sed -n '1,5p' file.txt
只打印文件的前五行。 - -e: 允许多个编辑命令。例如,
sed -e 's/foo/bar/' -e 's/baz/qux/' file.txt
会依次执行两个替换操作。 - -f: 从文件中读取编辑命令。例如,
sed -f script.sed file.txt
会从script.sed
文件中读取命令并应用到file.txt
。 - -r: 使用扩展正则表达式。例如,
sed -r 's/(foo|bar)/baz/' file.txt
会使用扩展正则表达式来匹配foo
或bar
并替换为baz
。
2. 常用操作
- s: 替换操作,格式为
s/old/new/
。例如,sed 's/foo/bar/' file.txt
会将foo
替换为bar
。 - p: 打印匹配的行。例如,
sed -n '/foo/p' file.txt
会打印包含foo
的行。 - d: 删除匹配的行。例如,
sed '/foo/d' file.txt
会删除包含foo
的行。 - a: 在匹配行后追加文本。例如,
sed '/foo/a\new line' file.txt
会在包含foo
的行后追加new line
。 - i: 在匹配行前插入文本。例如,
sed '/foo/i\new line' file.txt
会在包含foo
的行前插入new line
。 - c: 替换匹配行。例如,
sed '/foo/c\new line' file.txt
会将包含foo
的行替换为new line
。
这些选项和操作是 sed
命令中最常用的部分,掌握它们可以大大提高处理文本文件的效率。