Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: XsPiDeR в May 02, 2009, 00:20



Титла: Помощ за BASH
Публикувано от: XsPiDeR в May 02, 2009, 00:20
Здравейте,
Има ли някакъв начин от един файл, примерно с IP адреси които се повтарят
да се изкарат някак си тези повтарящите се само по веднъж.
Пример
ips.txt
192.168.0.1
192.168.0.1
192.168.0.3
192.168.0.3
192.168.0.3

И искам да испише следното след като grep/egrep/awk или по какъвто и да било
начин да излезе ип адреса само веднъж
192.168.0.1
192.168.0.3

-- Благодаря предварително.


Титла: Re: Помощ за BASH
Публикувано от: LinuxFanUNIX в May 02, 2009, 00:29
Това би могло да помогне, дори и да не е най-доброто решение:
Ако приемем че адресите са в /tmp/ip.txt
Код
GeSHi (Bash):
  1. mkdir /tmp/ip; for ip in `cat /tmp/ip.txt ` ; do touch /tmp/ip/$ip; done
  2. ls /tmp/ip/ > /tmp/ip.txt

Така ще стане.


Титла: Re: Помощ за BASH
Публикувано от: manul в May 02, 2009, 01:05
Решението на LinuxFanUnix е доста неефективно... пък и има допълнителни ограничения за символите и т.н.
Опитай така

Код
GeSHi (Bash):
  1. sort filename | uniq > filename.new
или
Код
GeSHi (Bash):
  1. sort -u filename > filename.new

също пробвай после
man sort
man uniq
 ;)


Титла: Re: Помощ за BASH
Публикувано от: mitaka_g в May 02, 2009, 01:08
Код
GeSHi (Bash):
  1. # cat ips.txt  |uniq -c|awk '{print $2}'
  2. 192.168.0.1
  3. 192.168.0.3
  4. # cat ips.txt
  5. 192.168.0.1
  6. 192.168.0.1
  7. 192.168.0.3
  8. 192.168.0.3
  9. 192.168.0.3


Титла: Re: Помощ за BASH
Публикувано от: XsPiDeR в May 02, 2009, 01:45
Благодаря на всички. Това последното ми свърши добра работа.


Титла: Re: Помощ за BASH
Публикувано от: DNAeon в May 03, 2009, 12:38
А защо не просто така:
Код
GeSHi (Bash):
  1. sort -u <ips_file>

Като просто замениш <ips_file> с твоя файл с ИП-та ;)