2015-06-09 52 views
0

我有這個文件:使用SED,AWK或者grep的分裂與數字的字符串

mmD_154Lbb_e_dxk_83233.orc 
154L_bbe_Bddxk_3259.txt 
14Lbe_3233.orc 
m2_154Lbbe_dxk_67233.op 
mZZ_1A4Lbbe_dxk_32823.op 
mmD_154Lbbe_dxk_99333.orc 
mmD_oS154be_dxk_12338.txt 

我試圖用sed或awk來拆分號碼和我沒有解決方案:

我需要出去放:

83233 
2597 
3233 
67233 
32823 
99333 
12338 

我怎樣才能得到它,在每個分隔符分割?

感謝

+1

2597從何而來? – Wintermute

+0

你試過查找正則表達式嗎? – rghome

回答

0

這AWK可以讓你塔t:

awk -F '[_.]' '{print $(NF-1)}' file 
83233 
3259 
3233 
67233 
32823 
99333 
12338 
+0

當沒有找到數字時,這也返回解析行:(例如:'echo'test.txt | awk -F'[_。]''{print $(NF-1)}''return'test.txt') – Cyrbil

+0

你知道這種輸入的需求嗎? – anubhava

0
sed 's/\..*$//;s/^.*_//' file 
     |  | 
     |  > remove all chars from beginning until last '_' char 
     > remove last '.' char and all chars after that 

輸出

83233 
3259 
3233 
67233 
32823 
99333 
12338 

IHTH

+0

謝謝你也可以工作 –

0

與GNU sed的

sed 's/^.*_\([[:digit:]]\+\)\..*$/\1/' file 
+0

不錯,但是當沒有數字匹配時,這返回全行 – Cyrbil

+1

謝謝你的工作 –