推荐答案
// www.javascriptcn.com code example # 常用选项 -i: 直接修改文件内容(原地编辑) -n: 取消默认输出,仅打印处理过的行 -e: 允许多个编辑命令 -f: 从文件中读取编辑命令 -r: 使用扩展正则表达式 # 常用操作 s: 替换操作,格式为 's/old/new/' p: 打印匹配的行 d: 删除匹配的行 a: 在匹配行后追加文本 i: 在匹配行前插入文本 c: 替换匹配行
本题详细解读
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 命令中最常用的部分,掌握它们可以大大提高处理文本文件的效率。