shell命令:sed命令

用法: sed [选项]... {脚本(如果没有其他脚本)} [输入文件]...

  -n, --quiet, --silent
                 取消自动打印模式空间
  -e 脚本, --expression=脚本
                 添加“脚本”到程序的运行列表
  -f 脚本文件, --file=脚本文件
                 添加“脚本文件”到程序的运行列表
  --follow-symlinks
                 直接修改文件时跟随软链接
  -i[SUFFIX], --in-place[=SUFFIX]
                 edit files in place (makes backup if SUFFIX supplied)
  -c, --copy
                 use copy instead of rename when shuffling files in -i mode
  -b, --binary
                 does nothing; for compatibility with WIN32/CYGWIN/MSDOS/EMX (
                 open files in binary mode (CR+LFs are not treated specially))
  -l N, --line-length=N
                 指定“l”命令的换行期望长度
  --posix
                 关闭所有 GNU 扩展
  -r, --regexp-extended
                 在脚本中使用扩展正则表达式
  -s, --separate
                 将输入文件视为各个独立的文件而不是一个长的连续输入
  -u, --unbuffered
                 从输入文件读取最少的数据,更频繁的刷新输出
  -z, --null-data
                 separate lines by NUL characters
  --help
                 display this help and exit
  --version
                 output version information and exit

如果没有 -e, --expression, -f 或 --file 选项,那么第一个非选项参数被视为
sed脚本。其他非选项参数被视为输入文件,如果没有输入文件,那么程序将从标准
输入读取数据。

sed
-n 只显示编辑的行
-e 可接受多次编辑
-i 能够修改文件

p 打印输出
i 插入
a 追加
s 替换

[root@emr-header-2 log]# df
文件系统           1K-块     已用      可用 已用% 挂载点
/dev/vda1      123721700 26721900  90692068   23% /
devtmpfs        65922696        0  65922696    0% /dev
tmpfs           65932204       92  65932112    1% /dev/shm
tmpfs           65932204      932  65931272    1% /run
tmpfs           65932204        0  65932204    0% /sys/fs/cgroup
/dev/vdb       264091716 14602820 249472512    6% /mnt/disk1
tmpfs           13186444        0  13186444    0% /run/user/1001
tmpfs           13186444        0  13186444    0% /run/user/0
tmpfs           13186444        0  13186444    0% /run/user/1011
tmpfs           13186444        0  13186444    0% /run/user/1000
tmpfs           13186444        0  13186444    0% /run/user/1006

[root@emr-header-2 log]# df | sed  '1,3p'  #显示1、2、3行,默认原信息也会显示,所以1、2、3行会重复显示
文件系统           1K-块     已用      可用 已用% 挂载点
文件系统           1K-块     已用      可用 已用% 挂载点
/dev/vda1      123721700 26721900  90692068   23% /
/dev/vda1      123721700 26721900  90692068   23% /
devtmpfs        65922696        0  65922696    0% /dev
devtmpfs        65922696        0  65922696    0% /dev
tmpfs           65932204       92  65932112    1% /dev/shm
tmpfs           65932204      932  65931272    1% /run
tmpfs           65932204        0  65932204    0% /sys/fs/cgroup
/dev/vdb       264091716 14602820 249472512    6% /mnt/disk1
tmpfs           13186444        0  13186444    0% /run/user/1001
tmpfs           13186444        0  13186444    0% /run/user/0
tmpfs           13186444        0  13186444    0% /run/user/1011
tmpfs           13186444        0  13186444    0% /run/user/1000
tmpfs           13186444        0  13186444    0% /run/user/1006

[root@emr-header-2 log]# df | sed -n '1,3p'  # 只显示编辑过的行,也就是1、2、3行
文件系统           1K-块     已用      可用 已用% 挂载点
/dev/vda1      123721700 26721900  90692068   23% /
devtmpfs        65922696        0  65922696    0% /dev

[root@emr-header-2 log]# df | sed -ne '1p' -e '3p'  #显示1行,和3行, -e参数可以多次编辑
文件系统           1K-块     已用      可用 已用% 挂载点
devtmpfs        65922696        0  65922696    0% /dev
posted @ 2018-12-18 10:12  xuejianbest  阅读(367)  评论(0编辑  收藏  举报