|
藍森林 http://www.lslnet.com 2006年6月26日 11:18
請教分離文本的問題
如有一文本
$cat test.txt
49李清 208606650556200003519
60潘有 208606650556200003625
506詹朝 208606668001280005361
513田利 208606668001280005431
514陶富 20860666800128000544
我想得將前面的數字和名字分開,如
49 李清 208606650556200003519
60 潘有 208606650556200003625
506 詹朝 208606668001280005361
513 田利 208606668001280005431
514 陶富 20860666800128000544
不知道怎麼用表達以空格開始,以數字以尾的第一列,只要分開這數字和漢字就行,謝謝 |
請教分離文本的問題
[code]
sed 's/^[ ]*//;s/^[0-9]*/& /'[/code] |
請教分離文本的問題
果然能用,謝謝了,看懂了這個表達式了,
順便再接著問個問題,那能用sed只顯示第一列為數字的嗎
就上例,只顯示49 60 506 513 514
雖然 sed 's/^[ ]*//;s/^[0-9]*/& /' | awk '{print $1}' 即可
但能只用sed實現嗎,即用sed顯示指定列,謝謝 |
請教分離文本的問題
借用烈火GG的改一下
[code]sed 's/^[ ]*//;s/[^0-9]\+.*/ /g' file[/code]
awk不行嗎?
[code]awk '{gsub(/[^0-9]+/,"",$1);print $1}' file[/code] |
請教分離文本的問題
mocou MM的sed 's/^[ ]*//;s/[^0-9]\+.*/ /g' file
得不到想要的正確結果啊,把file全都輸出來了
awk版的倒是可以。
就是想知道如何用sed得到同樣的結果,呵呵,想多學點啊
不過awk的gsub解釋的太難了,看了半天還是暈乎著
gsub(r,s,t)以字符S替換滿足正則表達式R的字符串T中R |
請教分離文本的問題
麻煩點 :mrgreen:
[code]
sed 's/^[ ]*//;s/^[0-9]*/& /;s/\(^[0-9]*\).*/\1/' file[/code] |
請教分離文本的問題
[code]# sed -V
GNU sed version 4.0.5
# sed 's/^[ ]*//;s/[^0-9]\+.*/ /g' d5
49
60
506
513
514 [/code]
沒有問題啊,看看sed版本 :em17: |
請教分離文本的問題
烈火兄的可以簡便些
[code]sed 's/^[ ]*//;s/\(^[0-9]*\).*/\1/' file[/code] |
請教分離文本的問題
又是版本的問題啊,我的還是sco505,唉。。。。。。難怪要出這麼多事,不過也好,順便把linux版的也學到了,呵呵 |
| |