千家信息网

linux下sed命令的使用方法

发表于:2024-11-18 作者:千家信息网编辑
千家信息网最后更新 2024年11月18日,这篇文章主要介绍"linux下sed命令的使用方法",在日常操作中,相信很多人在linux下sed命令的使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"linux
千家信息网最后更新 2024年11月18日linux下sed命令的使用方法

这篇文章主要介绍"linux下sed命令的使用方法",在日常操作中,相信很多人在linux下sed命令的使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"linux下sed命令的使用方法"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

# 选项与参数:# -n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。# -e :直接在命令列模式上进行 sed 的动作编辑;# -f :直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的 sed 动作;# -r :sed 的动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法)# -i :直接修改读取的文件内容,而不是输出到终端。#  # 动作说明: [n1[,n2]]function# n1, n2 :选择操作的行数, 2, 5function代表2到5行, 2, +5function 代表第二行开始往后5行# !function取反#  # function:# a :新增行, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)# c :取代行, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!, 格式: # d :删除行,d 后面通常不接字符串;格式: # i :插入行, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);# p :列印行,将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~# s :取代,可以直接进行取代的工作!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是, 末尾不加g只替换每一行的第一个匹配的字符串# c和s 的区别, 与s的区别s是只替换匹配到的字符串, c是替换匹配到的字符串的行#例子:    #建一个测试文件    echo -e "you are my love\nhello word\nfuck coding\nhttp://baidu.com" > test.txt    # 不加选项, 操作后的结果打印到屏幕, 不会修改test.txt        # function s            # you替换成he            sed 's/you/he/' test.txt            # 1到2行的a替换成b            sed '1,2s/a/b/' test.txt        #function a, 在有hello行的下一行插入 k, a后面的\可以不要加上好看些            # 匹配到hello的下一行添加一行k            sed '/hello/a\k' test.txt            # 1到2行每行后面添加一行k            sed '1,2a\k' test.txt        # function c, 替换有hello的的行为 k, c后面的\可以不要加上好看些            # 匹配到的hello的行替换成k            sed '/hello/c\k' test.txt            # 1到2行替换成k            sed '1,2c\k' test.txt        # function i, 和a一样, 只不过这个是在匹配行的上一行插入        # function p, !p取反, 与-n配合使用            # 打印匹配到的行, 或取反            sed -n '/hello/p' test.txt            sed -n '/hello/!p' test.txt            # 打印1到2行, 或取反            sed -n '1,2!p' test.txt            sed -n '1,2p' test.txt        # function d        # 删除匹配到的行, 或取反            sed '/hello/d' test.txt            sed '/hello/!d' test.txt        # 删除1到2行, 或取反            sed -n '1,2!p' test.txt            sed -n '1,2p' test.txt    # -i 选项, 这个用的比较多, 这个直接操作文件用法一样, 效果和 sed '/hello/d' test.txt > test.txt 一样.    # 其他选项自己琢磨

到此,关于"linux下sed命令的使用方法"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

0