看板 Linux 關於我們 聯絡資訊
echo "x [ 12, 34 ]"|sed 's/[^0-9]/ /g'|awk '{print$1==$2?"equal":"not equal"}' 想法: 將非數字全都替換成空白 再用awk抓出兩數字做比較 印出比對後的結果 盡可能用一行指令達到效果 僅適用於特殊情況 給你參考 :) ※ 引述《ptthidebear (= =)》之銘言: : Hi~ 各位板大先進大家好 : 小弟對於shell script 不是很熟悉 : 最近剛好碰到一個問題是 想要用shell script parse 字串 : "asdfwer [ 1234, 3456 ]" 中的 1234 和 3456 出來 : 並且加以比對看數字是不是一樣 : 當然希望最好是一行 command就可以解決...|||Orz : 不知道各位大大們對於這個問題有沒有什麼建議或是指教的 : 非常謝謝大家!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.34.196.50
ptthidebear:感謝大大!看來我要好好加強sed awk 和re的知識了QQ" 10/20 08:48
ptthidebear:我還想請教一個問題是 如果連續兩行一樣內容 10/20 08:49
ptthidebear:似乎出來的結果就都是為n@@?(剛剛試了一下好像是這樣) 10/20 08:49
已修正 之前給的有問題 抱歉 QQ [me@home ~]$ cat testInput abc [ 123, 456 ] def [24 ,24] gh[ 13,24] [me@home ~]$ cat testInput|sed 's/[^0-9]/ /g'|awk '{print$1==$2?"yes":"no"}' no yes no 修正後的版本應該不會發生你說的狀況 請再試試看 :) ※ 編輯: guessi 來自: 114.34.196.50 (10/20 10:02)
curist:jk543 [2,1] 10/20 13:00
xyz2012:樓上,把 [ 前面的字串砍掉就好了.例外情形太多了吧. 10/20 17:40
xyz2012:cat testInput|sed 's/.*\[/[/'|sed 's/[^0-9]/ /g'|awk.. 10/20 17:43