shell技巧(sed 断句、读取指定行)

在对文本进行处理时,发现用脚本来处理的时候非常方便,将一些记录记载下来:

1、断句,(同行有多个字段需要读取时特别管用)


原文本:
Cell 04 - Address: 14:E6:E4:E3:E8:68
                    Protocol:802.11b/g/n
                    ESSID:"Sunshine_Mercury"
                    Mode:Managed
                    Frequency:2.412 GHz (Channel 1)
                    Quality:68/100  Signal level:-63 dBm  Noise level:-92 dBm
                    Encryption key : on
                    Bit Rates:54 Mb/s
                    IE: WPA Version 1
                        Group Cipher : CCMP
                        Pairwise Ciphers (1) : CCMP
                        Authentication Suites (1) : PSK
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : CCMP
                        Pairwise Ciphers (1) : CCMP
                        Authentication Suites (1) : PSK

使用命令:cat /etc/iwlist | sed -e 's/Noise\|Signal/\n&/g' | grep "Signal level:" | sed 's/ //g'

“cat /etc/iwlist | sed -e 's/Noise\|Signal/\n&/g' ”将同一行(Quality:68/100  Signal level:-63 dBm  Noise level:-92 dBm)进行断句,变成多行,这样即可读取相应的值。


2、shell读取文件的指定行字符串

在得到数行输出时,需要得到指定行的字段,可以使用该指令。

sed -n Np 文件名
如sed -n 2p xxx 输出结果即为第二行的内容。

原文地址:https://www.cnblogs.com/wlei/p/2800096.html