shell编程: sed命令给未注释行添加注释: 如: #abc dvfd #hre 只给第二行行首加#

shell编程: sed命令给未注释行添加注释: 如: #abc dvfd #hre 只给第二行行首加#,第1张

sed 's/^[^#]/#&/' file.txt >output.txt

注:

s是sed中的替换命令。

第一个^表示行首位置,[^#]表示非#号,合起来就表示要匹配不以#开头的行。

后面用&来原封不动引用前面匹配到的行内容,在其前面加上#号。

sed,以行为单位进行处理,可以直接将文件的内容进行增删改查等 *** 作

格式:sed    [选项]    参数    文件

-r    支持正则表达式

-i    直接修改文件内容

-n    只打印匹配的行

a    在当前行下面插入内容

i    在当前行上面插入内容(直接修改,原文件也会修改)

c    把选定行改为新的文本(替换所在那行)

p    打印行(一般与-n一起使用,屏蔽默认输出,否则会出现两行内容)

s      替换指定字符

第一部分:

sed -n '3,6p' passwd    #打印3-6行

sed -i 'd' passwd      #删除所有内容行

sed -i '1,4d' passwd        #删除1-4行

sed -n '1p4p' passwd    #打印第1和第4行

sed -n '3,+10p' passwd     #打印第3行以及后面10行

sed -n '1~2p' passwd    #打印奇数行

sed -n '2~2p' passwd    #打印偶数行

sed -n '/root/p' passwd    #打印包含root的行

sed -n '/bash$/p' passwd    #打印bash结尾的行

sed -n '/^root/p'  passwd     #输出以root开头的行

sed -n '$=' passwd        #输出文件总行数

sed -n '2,6d' passwd    #删除2-6行

sed '/xml/d' passwd    #删除所有包含xml的行

sed '/xml/!d' passwd    #删除所有不包含xml的行,!取反

sed '$d'  passwd    #删除最后一行

sed '/^install/d'  passwd    #删除install开头的行

sed '/^$/d'  passwd    #删除所以空行

第二部分:

sed 's/ww/web/' test.txt    #每行中第一个ww改成web

sed 's/ww/web/g' test.txt    #将所有的ww改成web

sed 's/ww/web/3' test.txt     #每行中第三个ww改成web

sed 's/xml//g' test.txt    #将所有的xml都删除(换成空)

sed 's#/bin/bash#/sbin/sh#g' passwd    #包含/的替换,可以把格式换成#

sed '1,7s/^/#/'  passwd  #第1~7行注释掉

sed 's/^#//g'    passwd    #将所有注释去掉

用 sed 方便

sed -i 'Ns/<!--\(.*\)\/-->/<\1>/' 输入文件

其中

N 为行数,如果没有指定,则默认为所有行。

\1 表示 \(.*\)\,即这里的 item name="abc"


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11667894.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存