Sort for the uniq, then later sort for the final order:
cat originalFile.txt | awk -F "," '' | sort | uniq -c | sort -n
У меня есть файл, который выглядит так:
"string",192.168.1.0,,TX,192.168.1.2,,,100,0,0,10,10,10,, "string",192.168.1.0,,TX,192.168.1.1,,,100,0,0,10,10,10,, "string",192.168.1.0,,TX,192.168.1.4,,,100,0,0,10,10,10,, "string",192.168.1.0,,TX,192.168.1.2,,,100,0,0,10,10,10,,
С помощью этой команды я ожидаю, что она извлечет второй IP-адрес и в основном перечислит, сколько раз этот IP указан в этом файле.
cat originalFile.txt | awk -F "," '' | sort | uniq -c > outputFile.txt
Это сортирует неправильно. Я хочу, чтобы выходной файл выглядел как показано ниже (упорядочено по первому столбцу)
1 192.168.1.1 1 192.168.1.4 2 192.168.1.2
Я попытался изменить раздел сортировки на
sort -n -k1
Я думаю, проблема в том, что я сортирую до того, как он выполняет uniq, но любой другой порядок, кажется, нарушает процесс. Прямо сейчас мое решение состоит в том, чтобы просто запустить две команды, подобные этой.
cat originalFile.txt | awk -F "," '' | sort | uniq -c > outputFile1.txt sort -n -k1 outputFile1.txt > outputFile2.txt
Очевидно, что использование временного файла для этого не идеально, и я уверен, что мне просто нужно немного изменить это и поместить в другом порядке. Любая помощь приветствуется.
Sort for the uniq, then later sort for the final order:
cat originalFile.txt | awk -F "," '' | sort | uniq -c | sort -n