我想在這樣的線到grep個別數量:如何通過sed提取這些字段?
foo=24.587 bar=88 fox=jobs
和提取,也就是說,所有的「88」 values..the列數並不一致那麼AWK接着是切不會削減它。
我試着用的sed是這樣的:
sed -e 's/.*\s\(bar=.+\)\s.*/\1/g'
和剛剛轉儲整條生產線。我不知道如何糾正這個正則表達式,更重要的是爲什麼這個正則表達式不符合我的期望?
我想在這樣的線到grep個別數量:如何通過sed提取這些字段?
foo=24.587 bar=88 fox=jobs
和提取,也就是說,所有的「88」 values..the列數並不一致那麼AWK接着是切不會削減它。
我試着用的sed是這樣的:
sed -e 's/.*\s\(bar=.+\)\s.*/\1/g'
和剛剛轉儲整條生產線。我不知道如何糾正這個正則表達式,更重要的是爲什麼這個正則表達式不符合我的期望?
使用-r
(擴展正則表達式)。這往往會更像你所期望的那樣使用regexen。但你必須去除反斜線:
$ echo "foo=24.587 bar=88 fox=jobs" | sed -r 's/.*\s(bar=.+)\s.*/\1/g'
bar=88
酷!有趣的是,如果我這樣做: echo「tau = 39.05 dos = 200 iv = 2 bar = 39.05 foo = 39.06 fox = jobs」| sed -r's /.* \ s(bar =。+)\ s。*/\ 1/g'我得到了bar和foo! – 2013-02-27 01:30:43
@PalaceChan使用's /.* \ s(bar = [^] +)\ s。*/\ 1/g''。不幸的是,'sed'不允許我不情願的量詞 – 2013-02-27 01:33:25
,我看到,trixy trixy。謝謝 – 2013-02-27 01:40:29
sed -r 's/.*\s(bar=.+)\s.*/\1/g'
你想匹配'bar = 88'還是'= 88'並且你需要每行有多個可能的匹配? – Scrutinizer 2013-02-27 13:17:58