在ksh和nawk中搜索字符串每行中的数字

时间:2011-05-25 20:10:07

标签: string parsing awk ksh nawk

输入文件:

vnic10
e1000g1
e1000g2
vnic10
blablabla888blablablabla999blabla

需要输出:(仅限每行中的数字)

10
1000 1
1000 2
10
888 999

我们可以使用sed和记忆模式来做到这一点。 我正在寻找使用awk / nawk和ksh命令完成这项工作的逻辑。

2 个答案:

答案 0 :(得分:2)

不是最佳格式,但tr完成了这项工作

$ tr '[a-z]' ' ' < file_containing_input
    10
 1000 1
 1000 2
    10
         888            999 

使用awk:

$ awk '{ gsub(/[a-z]+/, " "); print }' file_containing_input
 10
 1000 1
 1000 2
 10
 888 999 

还有一个用bash(现在我需要停止......)

$ while read a; do echo ${a//[a-z]/ }; done < file_containing_input
10
1000 1
1000 2
10
888 999

答案 1 :(得分:0)

看起来像是一个家庭作业,因为“我们可以用sed做到这一点”。实际上它是简单的替换命令,用空格替换任意数量的非数字字符。

sed -r "s/[^0-9]+/\ /g" input_file