QQ个性网:专注于分享免费的QQ个性内容

关于我们| 网站公告| 广告服务| 联系我们| 网站地图

搜索
编程 JavaScript Java C++ Python SQL C Io ML COBOL Racket APL OCaml ABC Sed Bash Visual Basic Modula-2 Logo Delphi IDL Groovy Julia REXX Chapel X10 Forth Eiffel C# Go Rust PHP Swift Kotlin R Dart Perl Ruby TypeScript MATLAB Shell Lua Scala Objective-C F# Haskell Elixir Lisp Prolog Ada Fortran Erlang Scheme Smalltalk ABAP D ActionScript Tcl AWK IDL J PostScript IDL PL/SQL PowerShell

软件测试/测试开发|Linux sed命令详解

日期:2025/04/08 13:10来源:未知 人气:57

导读:sed命令介绍sed是stream editor(流编辑器)的简写,sed 可依照脚本的指令来处理、编辑文本文件。Sed主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。sed命令语法基本语法:sed [选项] '动作' 文件名常用参数 -n, --quiet, --silent 取消自动打印模式空间 -e 脚本, --expression=脚本 添加“脚本......

sed命令介绍

sedstream editor(流编辑器)的简写,sed 可依照脚本的指令来处理、编辑文本文件。Sed主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。

sed命令语法

  • 基本语法:

    sed [选项] '动作' 文件名

  • 常用参数

    -n, --quiet, --silent 取消自动打印模式空间 -e 脚本, --expression=脚本 添加“脚本”到程序的运行列表 -f 脚本文件, --file=脚本文件 添加“脚本文件”到程序的运行列表 --follow-symlinks 直接修改文件时跟随软链接 -i[扩展名], --in-place[=扩展名] 直接修改文件(如果指定扩展名就备份文件) -l N, --line-length=N 指定“l”命令的换行期望长度 --posix 关闭所有 GNU 扩展 -r, --regexp-extended 在脚本中使用扩展正则表达式 -s, --separate 将输入文件视为各个独立的文件而不是一个长的连续输入 -u, --unbuffered 从输入文件读取最少的数据,更频繁的刷新输出 --help 打印帮助并退出 --version 输出版本信息并退出 -a ∶新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~ -c ∶取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行! -d ∶删除,因为是删除啊,所以 d 后面通常不接任何咚咚; -i ∶插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行); -p ∶列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作~ -s ∶取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法

使用示例

  1. 查看文件内容

    • 查看文件指定行的内容,如查看文件5-8行的内容

    $ sed -n '5,8 p' passwdsync:x:4:65534:sync:/bin:/bin/syncgames:x:5:60:games:/usr/games:/usr/sbin/nologinman:x:6:12:man:/var/cache/man:/usr/sbin/nologinlp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin

    • 查看以指定字符开头的行,如查看以root开头的行

    $ sed -n '/^root/ p' passwdroot:x:0:0:root:/root:/bin/bash

    • 忽略大小写,对含有root字符的行打印出来

    $ sed -n '/root/I p' passwdroot:x:0:0:root:/root:/bin/bashnm-openvpn:x:118:124:NetworkManager OpenVPN,,,:/var/lib/openvpn/chroot:/usr/sbin/nologin

  2. 查找功能

查找passwd文件中有/bin/bash字符串的行

$ sed -n '\%/bin/bash% p' passwdroot:x:0:0:root:/root:/bin/bashmuller:x:1000:1000:muller,,,:/home/muller:/bin/bash

  1. 删除打印输出

    sed '2,5 d' passwd |headroot:x:0:0:root:/root:/bin/bashsync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdownhalt:x:7:0:halt:/sbin:/sbin/haltmail:x:8:12:mail:/var/spool/mail:/sbin/nologinoperator:x:11:0:operator:/root:/sbin/nologingames:x:12:100:games:/usr/games:/sbin/nologinftp:x:14:50:FTP User:/var/ftp:/sbin/nologinnobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologindbus:x:81:81:System message bus:/:/sbin/nologin

  2. 新增行

    • 在文件的第三行之后加上salah

    $ sed -e 3a\salah players.txt | headmullermessikanesalahsanedurantcurrywuleiwuxizhouqi

    • 在文件的最开头追加内容

    $ sed '1 i\football' players.txtfootballmullermessikanesanedurantcurrywuleiwuxizhouqiwangzhelin

  3. 替换功能

    $ sed '6 c\harden' players.txt mullermessikanesaneduranthardenwuleiwuxizhouqiwangzhelin

总结

sed 命令的功能非常灵活,可以根据不同的需求组合和应用各种命令和选项。记住,在对文件进行编辑时要小心谨慎,特别是在使用 -i 选项直接修改文件内容时,务必备份文件以防意外。

Sed排行

关于我们|网站公告|广告服务|联系我们| 网站地图

Copyright © 2002-2023 某某QQ个性网 版权所有 | 备案号:粤ICP备xxxxxxxx号

声明: 本站非腾讯QQ官方网站 所有软件和文章来自互联网 如有异议 请与本站联系 本站为非赢利性网站 不接受任何赞助和广告