输入文件:
vnic10
e1000g1
e1000g2
vnic10
blablabla888blablablabla999blabla
需要输出:(仅限每行中的数字)
10
1000 1
1000 2
10
888 999
我们可以使用sed和记忆模式来做到这一点。 我正在寻找使用awk / nawk和ksh命令完成这项工作的逻辑。
答案 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