我有一些輸入(例如從OpenBSD上的ifconfig run0 scan
)有一些字段被空格分隔,但有些字段本身包含空格(幸運的是,包含空格的字段是總是用引號括起來)。sed:用下劃線替換引號內的空格
我需要區分引號內的空格和分隔符空格。這個想法是用下劃線替換引號內的空格。
的樣本數據:
%cat /tmp/ifconfig_scan | fgrep nwid | cut -f3
nwid Websense chan 6 bssid 00:22:7f:xx:xx:xx 59dB 54M short_preamble,short_slottime
nwid ZyXEL chan 8 bssid cc:5d:4e:xx:xx:xx 5dB 54M privacy,short_slottime
nwid "myTouch 4G Hotspot" chan 11 bssid d8:b3:77:xx:xx:xx 49dB 54M privacy,short_slottime
這並不最終處理方式我想,因爲我還沒有與下劃線引號但內更換的空間:
%cat /tmp/ifconfig_scan | fgrep nwid | cut -f3 |\
cut -s -d ' ' -f 2,4,6,7,8 | sort -n -k4
"myTouch Hotspot" 11 bssid d8:b3:77:xx:xx:xx
ZyXEL 8 cc:5d:4e:xx:xx:xx 5dB 54M
Websense 6 00:22:7f:xx:xx:xx 59dB 54M
試試AWK,它可能是您的解決方案,而不是sed的。 http://stackoverflow.com/questions/3458699/how-to-use-awk-to-extract-a-quoted-field – 2013-02-16 23:10:51
是的,我想我將不得不使用'awk'。但我仍然想用下劃線替換引號內的空格,作爲最終處理的一部分。 – cnst 2013-02-16 23:18:24
檢查這個的SUB部分: http://www.staff.science.uu.nl/~oostr102/docs/nawk/nawk_92。html 你可以混合我給你解決你的問題的兩個鏈接。 – 2013-02-16 23:27:52