zoukankan      html  css  js  c++  java
  • Linux中sed命令的用法举例

    前言

    sed - stream editor,流编辑器,用于对输入流(文件或来自管道的输入)执行基本文本转换,是Linux系统中最重要和最常用的命令之一。

    基本语法

    其基本语法如下:

    $ sed [OPTION]... {script-only-if-no-other-script} [input-file]...
    

    常用选项

    选项说明
    -n, --quiet, --silent 静默模式, 只输出被 sed 处理过的行;
    -e script, --expression=script 指定命令用于执行, 可以使用多个 -e 执行多个命令
    -f script-file, --file=script-file 指定含有命令的脚本用于执行
    -r, --regexp-extended 让脚本支持拓展的正则表达式语法, 如 +, ?, |, () 等
    -i --in-place 直接在指定的文件里修改编辑替换, 不在标准输出中输出任何内容

    用法举例

    打印

    $ #打印最后一行
    $ sed -n '$p' geekfile.txt
    $ #打印指定范围行,如第1行到第3行
    $ sed -n '1,3p' geekfile.txt
    $ #打印从第2行开始到以test结尾的行之间的每一行
    $ sed -n '2,/test$/p' geekfile.txt
    

    替换

    $ #替换行中第1次出现的pattern
    $ sed 's/unix/linux/' geekfile.txt
    $ #替换行中第n次出现的pattern
    $ sed 's/unix/linux/2' geekfile.txt
    $ #替换行中所有出现的pattern	
    $ sed 's/unix/linux/g' geekfile.txt
    $ #替换行中第n次及之后出现的所有pattern,如第三次及之后
    $ sed 's/unix/linux/3g' geekfile.txt
    $ # 替换指定行,如第三行
    $ sed '3 s/unix/linux/' geekfile.txt
    $ #替换指定范围的行,如1到3行
    $ sed '1,3 s/unix/linux/' geekfile.txt
    $ #替换指定范围的行,如第2行到最后一行,$表示最后一行
    $ sed '2,$ s/unix/linux/' geekfile.txt
    $ #只打印替换过的行
    $ sed 's/unix/linux/p' geekfile.txt
    

    删除

    $ #删除第5行
    $ sed '5d' filename.txt
    $ #删除最后一行
    $ sed '$d' filename.txt
    $ #删除指定范围的行, 如第3行到第6行
    $ sed '3,6d' filename.txt
    $ #删除指定范围的行, 如第3行到最后一行
    $ sed '3,$d' filename.txt
    $ #删除pattern所匹配的行,如删除含有abc的行
    $ sed '/abc/d' filename.txt
    

    参考资料

    sed-command-in-linux-unix-with-examples

  • 相关阅读:
    机器学习到底适合哪些人群?
    Window 下载Android系统源代码
    KeyguardSimPinView
    TrustManagerService.java
    ScrimState.java
    KeyguardSliceView.java
    博客
    name="verify-v1"是做什么用的
    基础练习 特殊回文数
    算法训练 P1103
  • 原文地址:https://www.cnblogs.com/lestatzhang/p/10611311.html
Copyright © 2011-2022 走看看