Re: [問題] bash 字串擷取

看板Linux作者 (啦 )時間16年前 (2009/06/18 18:17), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串3/4 (看更多)
※ 引述《Spig (Spig)》之銘言: : ※ 引述《Xphenomenon (啦 )》之銘言: : : 請問各位大大,假如我有一個變數: : : str='aaa bbb' : : echo ${str:0:3} : : echo ${str:4} : : 這樣可以分別把 aaa 和 bbb 抽取出來, : : 但是我現在要抽取的字串我無法事先知道他的長度, : : 有可能另一個字串是 'cccccccc ddddddd', : : 請問在 bash 裡面有什麼好方法嗎? 先感謝了! :> : str='aaa bbb' : for i in $str; do : echo $i : done : Result: : aaa : bbb 找到兩種方法,跟大家分享: # example: # source='111111 bbbbb # first=`echo $source | sed -n 's/\([^ ]*\) .*/\1/p'` # second=`echo $source | sed -n 's/[^ ]* \(.*\)/\1/p'` # # OUTPUT: # first == 111111 # second == bbbbb 另一種: while read first rest; do echo "$first = $rest"; done < file.txt -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.66.37.44

06/18 23:48, , 1F
第一種不就適用 cut 一樣意思
06/18 23:48, 1F

06/19 01:01, , 2F
如果空格一多呢? cut 好像就不太適用?
06/19 01:01, 2F

06/19 01:02, , 3F
阿 看錯,我應該多加` *' 讓可以 match 多個空格 @@
06/19 01:02, 3F
文章代碼(AID): #1AEXHHO8 (Linux)
文章代碼(AID): #1AEXHHO8 (Linux)