Sed 在包含关键字的行的开头和结尾插入标记

Sed 在包含关键字的行的开头和结尾插入标记,sed,awk,Sed,Awk,如果有人知道如何轻松做到这一点,请告诉我。我的结论如下: mac: 24:A4:3C:74:C0:49 name : SomeSome1 lastip : 192.168.1.178 txpower : 56 quality : 97 capacity : 95 mac: DC:9F:DB:62:10:BF name : SomeSome2 lastip : 192.168.1.58 txpower : 56 quality : 97 capacity : 11 mac: DC:9F:DB:3E

如果有人知道如何轻松做到这一点,请告诉我。我的结论如下:

mac: 24:A4:3C:74:C0:49 name : SomeSome1 lastip : 192.168.1.178 txpower : 56 quality : 97 capacity : 95
mac: DC:9F:DB:62:10:BF name : SomeSome2 lastip : 192.168.1.58 txpower : 56 quality : 97 capacity : 11
mac: DC:9F:DB:3E:25:D8 name : SomeSome3 lastip : 192.168.1.48 txpower : 56 quality : 74 capacity : 10
mac: DC:9F:DB:3E:25:D8 name : SomeSome3 lastip : 192.168.1.48 txpower : 56 quality : 74 capacity : 8
mac: 24:A4:3C:74:C0:49 name : SomeSome1 lastip : 192.168.1.178 txpower : 56 quality : 97 capacity : 95
mac: DC:9F:DB:62:10:BF name : SomeSome2 lastip : 192.168.1.58 txpower : 56 quality : 97 capacity : 11
<div style=' width: 50%; background-color: red; color: white'>mac: DC:9F:DB:3E:25:D8 name : SomeSome3 lastip : 192.168.1.48 txpower : 56 quality : 74 capacity : 10</div>
<div style=' width: 50%; background-color: red; color: white'>mac: DC:9F:DB:3E:25:D8 name : SomeSome3 lastip : 192.168.1.48 txpower : 56 quality : 74 capacity : 8</div>

包含值capacity的每一行我手头没有Busybox来测试它,但您可以尝试以下方法:

awk '$NF<=10{print "<div style='"'"' width: 50%; background-color: red; color: white'"'"'>"$0"</div>";next}1' file

awk'$NF尽管看起来很可怕,但以下方法可以奏效:

sed "s/\(^.*capacity : 10\)/<div style=' width: 50%; background-color: red; color: white'>\1<\/div>/g;s/\(^.*capacity : [0-9]$\)/<div style=' width: 50%; background-color: red; color: white'>\1<\/div>/g" t
sed“s/\(^.*容量:10\)/\1/g;s/\(^.*容量:[0-9]$\)/\1/g”t
其中
t
是输入文件


我首先替换
10
,然后在值为
<10

的位置添加标记。如果容量的值为
@axiom对不起,我无法跟随。容量的值不是最后一个字段吗,所以
$NF
的用法似乎是正确的?我只是不明白OP是如何为8的容量多出一行的,这不在他的示例输入中。对不起,我错过了OP在输入中遗漏一行的事实。我正在处理
不确定您是如何得到示例输出中的最后一行的
部分答案的。@axiom哦,好的,如果存在
容量,我发布的答案将有效。我将在php中使用此代码,我不明白还需要隐藏哪些特殊字符:awk'$NF
$ awk '$NF<=10{print "<div style='"'"' width: 50%; background-color: red; color: white'"'"'>"$0"</div>";next}1' file
mac: 24:A4:3C:74:C0:49 name : SomeSome1 lastip : 192.168.1.178 txpower : 56 quality : 97 capacity : 95
mac: DC:9F:DB:62:10:BF name : SomeSome2 lastip : 192.168.1.58 txpower : 56 quality : 97 capacity : 11
<div style=' width: 50%; background-color: red; color: white'>mac: DC:9F:DB:3E:25:D8 name : SomeSome3 lastip : 192.168.1.48 txpower : 56 quality : 74 capacity : 10</div>
<div style=' width: 50%; background-color: red; color: white'>mac: DC:9F:DB:3E:25:D8 name : SomeSome3 lastip : 192.168.1.48 txpower : 56 quality : 74 capacity : 8</div>
sed "s/\(^.*capacity : 10\)/<div style=' width: 50%; background-color: red; color: white'>\1<\/div>/g;s/\(^.*capacity : [0-9]$\)/<div style=' width: 50%; background-color: red; color: white'>\1<\/div>/g" t