Как ограничить поиск grep только ниже токена столбца?

0

Как я могу использовать grep для поиска только значений столбца ниже токена? Например, в следующем CSV-файле:

азбука  
1      4      5  
2      3      0  
1      3      6

... как я могу получить только значения столбца B?

Будет
источник

Ответы:

4

Я не уверен, что вы можете сделать это с помощью grep, однако вы можете использовать awk:

awk '{ print $2}' file.csv

Он распечатает второй столбец вашего файла.


РЕДАКТИРОВАТЬ

Если вы не хотите печатать имя столбца ( Bв примере), вы можете установить условие для FNR:

FNR Номер входной записи в текущем входном файле.

Как это:

awk ' FNR > 1 { print $2}' file.csv

РЕДАКТИРОВАТЬ 2

Если ваш файл является настоящим файлом CSV (значения, разделенные запятыми), вы должны предоставить аргумент разделителя полей ( -Fили --field-separator):

awk -F',' ' FNR > 1 { print $2}' file.csv
ssssteffff
источник
2

Использование grep в команде в соответствии с вопросом.

cat file.csv | cut -d " " -f 2 | grep -o '[0-9]'

Где cut -d (разделитель ""), используя пробел или "," когда csv запятая, а -f 2 - второе поле

grep -o - только соответствие

Изменить, чтобы разрешить не числовое поле теряет grep

cat file.csv | cut -d " " -f2 | tail -n +2
Antony
источник