作者Xphenomenon (啦 )
看板Linux
標題Re: [問題] bash 字串擷取
時間Thu Jun 18 18:17:52 2009
※ 引述《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
推 appleboy46:第一種不就適用 cut 一樣意思 06/18 23:48
→ Xphenomenon:如果空格一多呢? cut 好像就不太適用? 06/19 01:01
→ Xphenomenon:阿 看錯,我應該多加` *' 讓可以 match 多個空格 @@ 06/19 01:02