这篇文章主要介绍“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命令的使用方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。