从字符串中获取数值

时间:2014-07-19 12:31:56

标签: regex awk sed grep

从这个文件中,我需要所有数值:

textextone^1234)
tttexttwO^414)
teeetextthrEe^153)
randomdatattextFoR^153)

我试过了:

grep "(?<='[a-zA-Z]'\^)[^\)]*" file

感谢很多人!

6 个答案:

答案 0 :(得分:0)

使用sed你可以这样做:

sed 's/[^[:digit:]]\{1,\}//g' file
1234
414
153
153

答案 1 :(得分:0)

Perl One-Liner

使用此:

perl -ne 'while(m/\d+/g){print "$&\n";}' yourfile

答案 2 :(得分:0)

使用sed

sed  's/[^0-9]//g' filename

使用grep

grep -o "[0-9]*" filename

答案 3 :(得分:0)

只需使用-o的{​​{1}}:

grep

输出:

egrep -o '[[:digit:]]+' file
grep -Eo '[[:digit:]]+' file
grep -o '[[:digit:]]\+' file
egrep -o '[0-9]+' file
grep -Eo '[0-9]+' file
grep -o '[0-9]\+' file

答案 4 :(得分:0)

这是awk

awk -F^ '{print $2+0}' file
1234
414
153
153

答案 5 :(得分:0)

$ tr -d -c '[:digit:]\n' < file
1234
414
153
153