sed 命令

发布时间:2024年01月23日

以下是sed命令中一些常用的参数说明:

-n:关闭默认输出,只打印经过编辑的行。通常与p命令结合使用,用于仅打印匹配到的行。
例如:sed -n '/pattern/p' file.txt 只打印包含 pattern 的行。

-i直接修改文件内容,而不是将结果输出到标准输出。使用此选项时,sed将直接修改原始文件。
例如:sed -i 's/foo/bar/' file.txt 将文件中每行的第一个出现的 foo 替换为 bar 并直接修改文件。

-e <脚本>:指定要执行的编辑脚本。可以使用多个 -e 选项来指定多个编辑脚本。脚本将按照指定的顺序依次执行。
例如:sed -e 's/foo/bar/' -e 's/baz/qux/' file.txt 先执行第一个替换,然后执行第二个替换。

-r:启用扩展正则表达式,使得正则表达式中的特殊字符不需要进行转义。
例如:sed -r 's/(foo|bar)/baz/g' file.txt 将替换所有的 foo 或 bar 为 baz。

-f <脚本文件>:从指定的脚本文件中读取编辑命令。脚本文件可以包含多个编辑命令,每行一个。
例如:sed -f script.sed file.txt 将根据 script.sed 文件中的编辑命令对 file.txt 进行处理。

-V:显示sed的版本信息。

以下是一些常用的sed命令:

  • 替换内容:s/old/new/ - 将每行中的第一个匹配到的 old 替换为 new。
    例如:sed 's/foo/bar/' file.txt 将文件中每行的第一个出现的foo替换为bar。

  • 全局替换:s/old/new/g - 将每行中的所有匹配到的 old 替换为 new。
    例如:sed 's/foo/bar/g' file.txt 将文件中每行的所有foo替换为bar。

  • 删除行:d - 删除匹配到的行。
    例如:sed '/pattern/d' file.txt 将删除包含 pattern 的行。

  • 插入行:i\ - 在匹配到的行之前插入一行。
    例如:sed '/pattern/i\New Line' file.txt 将在包含 pattern 的行之前插入一行 New Line。

  • 追加行:a\ - 在匹配到的行之后追加一行。
    例如:sed '/pattern/a\New Line' file.txt 将在包含 pattern 的行之后追加一行 New Line。

  • 行号限定:<行号> - 限定对特定行进行操作。
    例如:sed '3s/foo/bar/' file.txt 将仅在第三行执行替换操作。

  • 打印行:p - 打印匹配到的行。
    例如:sed -n '/pattern/p' file.txt 将打印包含 pattern 的行。

  • 正则表达式:使用正则表达式进行模式匹配和替换。
    例如:sed 's/[0-9]/X/g' file.txt 将文件中的所有数字替换为 X。

  • 多个命令组合:使用分号将多个命令组合在一起,按顺序执行。
    例如:sed -e 's/foo/bar/; s/baz/qux/' file.txt 将先执行第一个替换,然后执行第二个替换。

文章来源:https://blog.csdn.net/Lakers2015/article/details/135767693
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。