區別於正則,通配符通常用戶命令行bash環境linux
` tab 上面的引號,兩個
`中間爲命令,會先執行,等價$()。ifconfig eth0 | sed -n '2p' | sed 's#^.*inet##g' |sed 's#n.*##g' | sed 's#^ ##' ##sed -n '2p' 打印出第二行 sed 's#^.*inet##g' 匹配替換到 inet sed 's#n.*##g' 匹配 取消netmask 之後的數據 sed 's#^ ##' 去除空格 注意 ^.*inet ^.* 表示任意字符開頭 匹配到 inet爲止
第二種方法
sed -nr 's#支持正則的位置##gp' file(s前的2爲行號)
sed - n 's#()()#\1\2#gp' file 當前面匹配的部分用小括號的時候,第一個括號內容,能夠在後面部分1\輸出。同理 \2 也同樣
示例正則表達式
I an oldboy teacher ! sed -nr '1s#^.*n (.*) t.*$#\1#gp' ./oldboy.log ##-r 開啓正則 1s 第一行 ^.*n 以任意字符開頭到n空格結尾(.*) 表示裏面匹配的內容oldboy teacher 過濾以空格t.* 任意字符結尾 \1 引用(.*)的配置匹配內容輸出
取IP vim
ifconfig eth0 | sed -n -r '2s#^.*et (.*) n.*$#\1#gp'
示例取644bash
stat /etc/hosts | sed -nr '4s#^.*\(0(.*)/-.*$#\1#gp'