Обработка текста с использованием bash

У меня есть файл дампа vmstat, который имеет заголовок и значения в этом формате

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------  
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st  
12  0 5924396 20810624 548548 935160    0    0     0     5    0    0 60  5 34  0  0  
12  0 5924396 20768588 548548 935160    0    0     0     0 1045 1296 99  0  0  0  0  
12  0 5924396 20768968 548548 935452    0    0     0    32 1025 1288 100  0  0  0  0  
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------  
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st  
 4  0 5924396 20768724 548552 935408    0    0     0    92 1093 1377 33  0 67  0  0  

Я пишу скрипт на bash, который извлекает только строки, содержащие строки с числами, т.е. значениями, и удаляет все строки, содержащие алфавит. Как я это сделал

2 ответа

Если вам нужны строки только с числами и табуляциями \ пробелами, grep -P "^[0-9\ \t]*$" должен вам помочь.

$> cat ./text | grep -P "^[0-9\ \t]*$"
12  0 5924396 20810624 548548 935160    0    0     0     5    0    0 60  5 34  0  0  
12  0 5924396 20768588 548548 935160    0    0     0     0 1045 1296 99  0  0  0  0  
12  0 5924396 20768968 548548 935452    0    0     0    32 1025 1288 100  0  0  0  0  
 4  0 5924396 20768724 548552 935408    0    0     0    92 1093 1377 33  0 67  0  0  

cat filename | grep "[0-9]"

Другие вопросы по тегам