Shell 脚本面试题
目录

Shell 脚本中 sed 命令的常用选项和操作有哪些?

· 约 2 分钟读完 · 第 74 / 124 章

推荐答案

本题详细解读

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 命令中最常用的部分,掌握它们可以大大提高处理文本文件的效率。