Поиск числа в каждой строке строки в ksh и nawk - PullRequest
0 голосов
/ 26 мая 2011

Входной файл:

vnic10
e1000g1
e1000g2
vnic10
blablabla888blablablabla999blabla

Требуется вывод: (Только цифры в каждой строке)

10
1000 1
1000 2
10
888 999

Мы можем сделать это, используя sed и запомненные шаблоны.Я ищу логику, чтобы сделать это, используя команды awk / nawk и ksh.

Ответы [ 2 ]

2 голосов
/ 26 мая 2011

Не лучшее форматирование, но 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
0 голосов
/ 26 мая 2011

Похоже на домашнее задание, так как «мы можем сделать это с помощью sed». На самом деле это простая команда замены, которая заменяет любое количество нечисловых символов пробелом.

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