Использование команды Uniq?

У меня есть содержимое файла какого-то материала и вы хотите использовать команду uniq, но он не работает, что я пропустил?

$ cat ornek_2 elma elma armut armut erik kayısı üzüm

С командой uniq;

$ cat ornek_2 | uniq elma armut armut erik kayısı üzüm

С командой sort | uniq

$ cat ornek_2 | sort | uniq armut armut elma erik kayısı üzüm
1
задан 15 August 2017 в 22:34

6 ответов

Две линии «арматуры» не совсем одинаковы. У меня есть пробел в конце.

Я понял это, когда редактировал вопрос. Мне просто пришлось щелкнуть в конце строки и заметить разрыв между словом и курсором. Но если бы я этого не осознал, я бы подал две строки на uniname, чтобы проанализировать каждый символ:

$ grep "armut" ornek_2 | uniname
character  byte       UTF-32   encoded as     glyph   name
        0          0  000061   61             a      LATIN SMALL LETTER A
        1          1  000072   72             r      LATIN SMALL LETTER R
        2          2  00006D   6D             m      LATIN SMALL LETTER M
        3          3  000075   75             u      LATIN SMALL LETTER U
        4          4  000074   74             t      LATIN SMALL LETTER T
        5          5  00000A   0A                     LINE FEED (LF)
        6          6  000061   61             a      LATIN SMALL LETTER A
        7          7  000072   72             r      LATIN SMALL LETTER R
        8          8  00006D   6D             m      LATIN SMALL LETTER M
        9          9  000075   75             u      LATIN SMALL LETTER U
       10         10  000074   74             t      LATIN SMALL LETTER T
       11         11  000020   20                     SPACE
       12         12  00000A   0A                     LINE FEED (LF)

См. Символ 11 в вышеприведенном выходе [!d2 ]

Если вы хотите проверить, заканчиваются ли какие-либо другие строки пробелами (пробелы, табы и т. д.), вы можете использовать grep:

$ grep -E '\s+$' ornek_2
armut 
üzüm 

Кстати, вы 't нужна труба cat в uniq или sort. Вы можете просто запустить uniq ornek_2 или sort ornek_2 | uniq, хотя в этом случае это не очень важно. Подробнее здесь: Должен ли я заботиться о ненужных кошках? - Unix & amp; Linux

3
ответ дан 22 May 2018 в 19:25

Две линии «арматуры» не совсем одинаковы. У меня есть пробел в конце.

Я понял это, когда редактировал вопрос. Мне просто пришлось щелкнуть в конце строки и заметить разрыв между словом и курсором. Но если бы я этого не осознал, я бы подал две строки на uniname, чтобы проанализировать каждый символ:

$ grep "armut" ornek_2 | uniname character byte UTF-32 encoded as glyph name 0 0 000061 61 a LATIN SMALL LETTER A 1 1 000072 72 r LATIN SMALL LETTER R 2 2 00006D 6D m LATIN SMALL LETTER M 3 3 000075 75 u LATIN SMALL LETTER U 4 4 000074 74 t LATIN SMALL LETTER T 5 5 00000A 0A LINE FEED (LF) 6 6 000061 61 a LATIN SMALL LETTER A 7 7 000072 72 r LATIN SMALL LETTER R 8 8 00006D 6D m LATIN SMALL LETTER M 9 9 000075 75 u LATIN SMALL LETTER U 10 10 000074 74 t LATIN SMALL LETTER T 11 11 000020 20 SPACE 12 12 00000A 0A LINE FEED (LF)

См. Символ 11 в вышеприведенном выходе

Если вы хотите проверить, заканчиваются ли какие-либо другие строки пробелами (пробелы, табы и т. д.), вы можете использовать grep:

$ grep -E '\s+$' ornek_2 armut üzüm

Кстати, вы 't нужна труба cat в uniq или sort. Вы можете просто запустить uniq ornek_2 или sort ornek_2 | uniq, хотя в этом случае это не очень важно. Подробнее здесь: Должен ли я заботиться о ненужных кошках? - Unix & amp; Linux

3
ответ дан 18 July 2018 в 08:28

Две линии «арматуры» не совсем одинаковы. У меня есть пробел в конце.

Я понял это, когда редактировал вопрос. Мне просто пришлось щелкнуть в конце строки и заметить разрыв между словом и курсором. Но если бы я этого не осознал, я бы подал две строки на uniname, чтобы проанализировать каждый символ:

$ grep "armut" ornek_2 | uniname character byte UTF-32 encoded as glyph name 0 0 000061 61 a LATIN SMALL LETTER A 1 1 000072 72 r LATIN SMALL LETTER R 2 2 00006D 6D m LATIN SMALL LETTER M 3 3 000075 75 u LATIN SMALL LETTER U 4 4 000074 74 t LATIN SMALL LETTER T 5 5 00000A 0A LINE FEED (LF) 6 6 000061 61 a LATIN SMALL LETTER A 7 7 000072 72 r LATIN SMALL LETTER R 8 8 00006D 6D m LATIN SMALL LETTER M 9 9 000075 75 u LATIN SMALL LETTER U 10 10 000074 74 t LATIN SMALL LETTER T 11 11 000020 20 SPACE 12 12 00000A 0A LINE FEED (LF)

См. Символ 11 в вышеприведенном выходе

Если вы хотите проверить, заканчиваются ли какие-либо другие строки пробелами (пробелы, табы и т. д.), вы можете использовать grep:

$ grep -E '\s+$' ornek_2 armut üzüm

Кстати, вы 't нужна труба cat в uniq или sort. Вы можете просто запустить uniq ornek_2 или sort ornek_2 | uniq, хотя в этом случае это не очень важно. Подробнее здесь: Должен ли я заботиться о ненужных кошках? - Unix & amp; Linux

3
ответ дан 24 July 2018 в 19:05

Я попробовал ваш файл образца. Я тоже получил вашу ошибку. Но когда я снова написал артефакт, проблема решена !!!

Если вы скопируете этот текст из любого места, введите их в свой файл снова.

sort a | uniq -ic
  2 armut
  2 elma
  1 erik
  1 kayısı
  1 üzüm 
1
ответ дан 22 May 2018 в 19:25
  • 1
    я попробовал ваше предложение, но не изменил – solfish 15 August 2017 в 22:40
  • 2
    @solfish я попытался записать снова, и он работает, как вы видите! Не копируйте. Копия может принести некоторые дополнительные charechter. Используйте od filename, чтобы увидеть исходный файл на диске. – Ali Ghasempour 15 August 2017 в 22:43
  • 3
    ok второй имеет проблему – solfish 15 August 2017 в 22:49

Я попробовал ваш файл образца. Я тоже получил вашу ошибку. Но когда я снова написал артефакт, проблема решена !!!

Если вы скопируете этот текст из любого места, введите их в свой файл снова.

sort a | uniq -ic 2 armut 2 elma 1 erik 1 kayısı 1 üzüm
1
ответ дан 18 July 2018 в 08:28

Я попробовал ваш файл образца. Я тоже получил вашу ошибку. Но когда я снова написал артефакт, проблема решена !!!

Если вы скопируете этот текст из любого места, введите их в свой файл снова.

sort a | uniq -ic 2 armut 2 elma 1 erik 1 kayısı 1 üzüm
1
ответ дан 24 July 2018 в 19:05
  • 1
    я попробовал ваше предложение, но не изменил – solfish 15 August 2017 в 22:40
  • 2
    @solfish я попытался записать снова, и он работает, как вы видите! Не копируйте. Копия может принести некоторые дополнительные charechter. Используйте od filename, чтобы увидеть исходный файл на диске. – Ali Ghasempour 15 August 2017 в 22:43
  • 3
    ok второй имеет проблему – solfish 15 August 2017 в 22:49

Другие вопросы по тегам:

Похожие вопросы: