обработка текста с использованием awk - PullRequest
2 голосов
/ 15 января 2011

Я пытаюсь обработать CSV-файл с помощью awk.У меня есть пять строк в моем CSV-файле.Я хочу, чтобы мой столбец 1 и столбец 3 были уникальными.Используя awk, я написал

awk -F "," '{print $1,",",$2,","$3,",",$4,",",$5}' A.csv|sort|uniq >B.csv

. Этот код состоит в том, чтобы объединить уникальную строку с 1-5 строками.Я хочу, чтобы мои остальные столбцы были в окончательном CSV-файле, но отсортированы и уникальны только по 1-му и 3-му столбцам.

1 Ответ

2 голосов
/ 15 января 2011

при условии, что вы хотите сохранить хотя бы одну из повторяющихся строк

$ more file
1 2 3 4 5 6
7 4 6 3 5 8
1 43 3 6 5 10
2 3 4 4 4 4

$ awk '(!($1$3 in u)){u[$1$3]=$0}END{for(i in u ) print u[i]}' file
7 4 6 3 5 8
1 2 3 4 5 6
2 3 4 4 4 4

Если вы не хотите сохранять повторяющиеся строки

$ awk '($1$3 in u){delete u[$1$3];next}{u[$1$3]=$0}END{for(i in u ) print u[i]}' file
7 4 6 3 5 8
2 3 4 4 4 4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...