Како користити уник команду на Линук-у

Линук уник команда пролази кроз ваше текстуалне датотеке тражећи јединствене или дуплиране редове. У овом водичу покривамо његову свестраност и карактеристике, као и како можете максимално искористити овај сјајни услужни програм.

Проналажење одговарајућих редова текста на Линук-у

Уник команда је брз, флексибилан и одличан у ономе што ради. Међутим, као и многе Линук команде, она има неколико чуда — што је у реду, све док знате за њих. Ако се одлучите без мало инсајдерског знања, могли бисте остати да се чешете о резултатима. Указаћемо на ове необичне ствари.

Команда уник је савршена за оне који су у кампу који је осмишљен да уради једну ствар и уради то добро. Због тога је такође посебно погодан за рад са цевима и играње улоге у командним цевоводима. Један од његових најчешћи сарадници је сортирано јер уник мора да има сортирани улаз на коме ради.

Хајде да га запалимо!

Покретање уник-а без опција

Имамо текстуалну датотеку која садржи стихове за Роберт Јохнсон’с песма Верујем да ћу очистити своју метлу. Хајде да видимо шта уник прави од тога.

Откуцаћемо следеће да бисмо превели излаз у мање:

uniq dust-my-broom.txt | less

Тхе

Добијамо целу песму, укључујући дупликате редова, у мање:

Излаз из

Чини се да то нису ни јединствене линије ни дупликати.

Тачно – јер је ово прва чудна ствар. Ако покренете уник без опција, понаша се као да сте користили опцију -у (јединствене линије). Ово говори уник-у да штампа само јединствене линије из датотеке. Разлог због којег видите дупликате линија је тај што, да би уник сматрао линију дупликатом, она мора бити поред њеног дупликата, што је место где сортирање долази.

  Како организовати видео игре на Линук-у са Лутрис-ом

Када сортирамо датотеку, она групише дупликате линија, а уник их третира као дупликате. Користићемо сортирање у датотеци, пренети сортирани излаз у уник, а затим коначан излаз пренети у мање.

Да бисмо то урадили, откуцавамо следеће:

sort dust-my-broom.txt | uniq | less

Тхе

Сортирана листа линија се појављује у мањем броју.

Реч, „Верујем да ћу обрисати прашину са своје метле“, дефинитивно се појављује у песми више пута. У ствари, понавља се два пута у прва четири реда песме.

Дакле, зашто се појављује на листи јединствених линија? Пошто се први пут појави линија у датотеци, она је јединствена; само наредни уноси су дупликати. Можете замислити то као навођење првог појављивања сваке јединствене линије.

Хајде да поново користимо сортирање и преусмеримо излаз у нову датотеку. На овај начин, не морамо да користимо сортирање у свакој команди.

Укуцавамо следећу команду:

sort dust-my-broom.txt > sorted.txt

Тхе сортед.ткт” команда у прозору терминала.’ видтх=”646″ хеигхт=”57″ онлоад=”пагеспеед.лазиЛоадИмагес.лоадИфВисиблеАндМаибеБеацон(тхис);” онеррор=”тхис.онеррор=нулл;пагеспеед.лазиЛоадИмагес.лоадИфВисиблеАндМаибеБеацон(тхис);”>

Сада имамо унапред сортирану датотеку за рад.

Бројање дупликата

Можете користити опцију -ц (број) да одштампате колико пута се сваки ред појављује у датотеци.

Откуцајте следећу команду:

uniq -c sorted.txt | less

Тхе

Сваки ред почиње бројем пута који се тај ред појављује у датотеци. Међутим, приметићете да је први ред празан. Ово вам говори да постоји пет празних редова у датотеци.

Излаз из

Ако желите да се излаз сортира по нумеричком редоследу, можете унети излаз из уник у сортирање. У нашем примеру, користићемо опције -р (обрнуто) и -н (нумеричко сортирање) и пренети резултате у мање.

Укуцавамо следеће:

uniq -c sorted.txt | sort -rn | less

Тхе

Листа је сортирана у опадајућем редоследу на основу учесталости појављивања сваке линије.

Наводи само дупле линије

Ако желите да видите само редове који се понављају у датотеци, можете користити опцију -д (поновљено). Без обзира колико пута се ред дуплира у датотеци, наведен је само једном.

  Како учинити да Линук изгледа као Цхроме ОС

Да бисмо користили ову опцију, откуцавамо следеће:

uniq -d sorted.txt

Тхе

Дуплициране линије су наведене за нас. Приметићете празан ред на врху, што значи да датотека садржи дупле празне редове — то није простор који је оставио уник да козметички надокнади листу.

Излаз из

Такође можемо комбиновати опције -д (поновљено) и -ц (број) и слати излаз кроз сортирање. Ово нам даје сортирану листу линија које се појављују најмање два пута.

Унесите следеће да бисте користили ову опцију:

uniq -d -c sorted.txt | sort -rn

Тхе

Навођење свих дуплираних линија

Ако желите да видите листу сваке дуплиране линије, као и унос за сваки пут када се линија појави у датотеци, можете користити опцију -Д (све дуплиране линије).

Да бисте користили ову опцију, откуцајте следеће:

uniq -D sorted.txt | less

Тхе

Листинг садржи унос за сваки дуплирани ред.

Ако користите опцију –гроуп, она штампа сваки дуплирани ред са празним редом или пре (претходно) или после сваке групе (додавање), или и пре и после (обе) сваке групе.

Користимо аппенд као наш модификатор, па откуцавамо следеће:

uniq --group=append sorted.txt | less

Тхе

Групе су раздвојене празним редовима да би биле лакше читљиве.

Излаз из

Провера одређеног броја знакова

Подразумевано, уник проверава целу дужину сваке линије. Међутим, ако желите да ограничите провере на одређени број знакова, можете користити опцију -в (провера знакова).

У овом примеру, поновићемо последњу команду, али ограничимо поређења на прва три знака. Да бисмо то урадили, откуцавамо следећу команду:

uniq -w 3 --group=append sorted.txt | less

Тхе

Резултати и груписања које добијамо су прилично различити.

Излаз из

Сви редови који почињу са „И б“ су груписани заједно јер су ти делови редова идентични, па се сматрају дупликатима.

Исто тако, сви редови који почињу са „ја сам“ третирају се као дупликати, чак и ако је остатак текста другачији.

Игнорисање одређеног броја знакова

Постоје неки случајеви у којима би могло бити корисно прескочити одређени број знакова на почетку сваког реда, на пример када су редови у датотеци нумерисани. Или, рецимо да вам је потребан уник да прескочите временску ознаку и почнете да проверавате редове од шестог знака уместо од првог знака.

  Како инсталирати ГитЦола на Линук

Испод је верзија наше сортиране датотеке са нумерисаним линијама.

Ако желимо да уник започне проверу поређења на знаку три, можемо да користимо опцију -с (прескакање знакова) тако што ћемо укуцати следеће:

uniq -s 3 -d -c numbered.txt

Тхе

Линије се детектују као дупликати и правилно се броје. Обратите пажњу да су приказани бројеви редова они првог појављивања сваког дупликата.

Такође можете прескочити поља (низ знакова и мало размака) уместо знакова. Користићемо опцију -ф (поља) да кажемо уник-у која поља да игнорише.

Укуцавамо следеће да кажемо уник-у да игнорише прво поље:

uniq -f 1 -d -c  numbered.txt

Тхе

Добијамо исте резултате као када смо рекли уник-у да прескочи три знака на почетку сваког реда.

Игноринг Цасе

Подразумевано, уник је осетљив на велика и мала слова. Ако се исто слово појављује ограничено и написано малим словима, уник сматра да су редови различити.

На пример, погледајте излаз из следеће команде:

uniq -d -c sorted.txt | sort -rn

Тхе

Редови „Верујем да ћу очистити своју метлу“ и „Верујем да ћу очистити своју метлу“ се не третирају као дупликати због разлике у слову на „Б“ у „верују“.

Међутим, ако укључимо опцију -и (занемари велика и мала слова), ове линије ће се третирати као дупликати. Укуцавамо следеће:

uniq -d -c -i sorted.txt | sort -rn

Тхе

Линије се сада третирају као дупликати и групишу заједно.

Линук вам ставља на располагање мноштво посебних услужних програма. Као и многи од њих, уник није алатка коју ћете користити сваки дан.

Зато је велики део усавршавања у Линук-у запамтити који алат ће решити ваш тренутни проблем и где га можете поново пронаћи. Међутим, ако вежбате, бићете на добром путу.

Или, увек можете само претражити Хов-То Геек—вероватно имамо чланак о томе.