Печать строк файла CSV, содержащего 2 символа в 1 столбце и сопоставление с образцом в другом столбце - PullRequest
0 голосов
/ 13 марта 2012

У меня есть файл CSV с 4 столбцами:

01, cat, animal, it catches mice
  • Файл содержит много символов из разных языков в UTF-8.

Как мне напечататьтолько те строки, которые содержат ровно 2 символа в столбце 2, а также соответствие "/ to" в любом месте этой строки в столбце 4?

Ответы [ 3 ]

2 голосов
/ 13 марта 2012

попробуйте это:

egrep "[^,]+,\s+[^,]{2},|([^,]+,\s+){3}.*/to.*" your_file

Попробуйте с этим файлом:

01, cat, animal, it catches mice
01, ab, animal, it catches/o mice
01, ca, animal, it catches/to mice
01, cat, animal, it catches m/toice

и возврат:

01, ab, animal, it catches/o mice
01, ca, animal, it catches/to mice
01, cat, animal, it catches m/toice
1 голос
/ 13 марта 2012

Это может работать для вас:

sed '/^[^,]*,\s*..,[^,]*,.*\/to/!d' file
1 голос
/ 13 марта 2012

Вы можете использовать awk:

$ cat /tmp/l
01, cat, animal, it catches mice
02, ok, aaa, e/tomos
03, bad, qux, vb/tomos

$ awk -F"," 'length($2) == 3 && $4 ~ /\057to/' /tmp/l
02, ok, aaa, e/atmos
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...