Как получить ключевые слова с уникальным значением?

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

<mobile_number1>|20141006 06:15:26||AKQY6LYACZAA4O|12|3|BIHAR|
<mobile_number2>|20141006 06:16:05||AKQY6MAYAEQALE|12|22|UP EAST|
<mobile_number3>|20141006 06:16:39||AKQY6MQICY4BEQ|12|2|ASSAM|
<mobile_number4>|20141006 06:16:49||AKQY6LUIAE4ACI|12|1|ANDHRA PRADESH| 
<mobile_number1>|20141006 06:17:53||AKQY6NFAAEYAJS|12|23|UP WEST| 
<mobile_number6>|20141006 06:18:09||AKQY6M7ACY4ANG|12|18|ORISSA|
<mobile_number7>|20141006 06:18:54||AKQY6MWQCZAAME|12|20|RAJASTHAN|
<mobile_number1>|20141006 06:19:50||AKQY6N2ACZMA2K|12|1|ANDHRA PRADESH|

Теперь нам нужно получить уникальный номер мобильного телефона, как это.

<mobile_number1>
<mobile_number2>
<mobile_number3>
<mobile_number4>
<mobile_number6>
<mobile_number7>

3 ответа

Чтобы отбросить все столбцы, кроме первого:

cut -d '|' -f 1

Чтобы пропустить повторяющиеся строки:

sort -u

Вместе (с вводом из файла):

cut -d '|' -f 1 <FILE> | sort -u

Для этого используются самые простые утилиты оболочки. Нет командных интерпретаторов, таких как awk необходимо.

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

  sort -t '|' -k 1,1 -u yourFile | awk -F "|" '{print $1}' 

где:

  • -t '|' использование | в качестве разделителя
  • -k 1,1 использовать первый столбец в качестве ключа
  • -u получить уникальную строку, используя ключ

awk выведите первый столбец и получите результат:

<mobile_number1>
<mobile_number2>
<mobile_number3>
<mobile_number4>
<mobile_number6>
<mobile_number7>

Этот скрипт работает, если каждая строка в yourFile имеет mobile_number как первый столбец отделен от остальных |,

 awk '!x[$1]++ {print $1}' FS="|" /path/to/file 

пример:

[aneesh@mylap /]$  awk '!x[$1]++ {print $1}' FS="|" /tmp/test.txt 

<mobile_number1>
<mobile_number2>
<mobile_number3>
<mobile_number4>
<mobile_number6>
<mobile_number7>
Другие вопросы по тегам