[root@server]# awk '!seen[$0]++' out.txt > cleaned
awk: (FILENAME=out.txt FNR=8547098) fatal error: internal error
Aborted
[root@server]#
„Serwer” ma: 8 GB RAM + 16 GB SWAP, x> 300 GB wolnego miejsca, amd64, procesor na pulpicie. Scientific Linux 6.6. Nic więcej na nim nie działa, aby wykonać OBCIĄŻENIE. Awk przerywa po kilku sekundach. Out.txt wynosi ~ 1,6 GB. GNU Awk 3.1.7.
Pytanie : Jak mogę usunąć zduplikowane linie, zachowując ich kolejność? Ważna jest także sprawa, np. „A” i „a” to dwie różne linie, musisz je zachować. Ale „a” i „a” są zduplikowane, potrzebny jest tylko pierwszy.
Odpowiedź może być w czymkolwiek ... jeśli awk nie jest do tego dobry ... to perl / sed .. jaki może być problem?
[root@server]# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 61945
max locked memory (kbytes, -l) 99999999
max memory size (kbytes, -m) unlimited
open files (-n) 999999
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 99999999
cpu time (seconds, -t) unlimited
max user processes (-u) 61945
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
[root@server]#
Aktualizacja: Próbowałem tego na maszynie RHEL, nie przerywa, ale nie miałem czasu czekać na zakończenie. Dlaczego linux SL różni się od RHEL?
Aktualizacja: Próbuję wirtualnego zgadywania w Ubuntu 14 .. do tej pory działa! To nie jest problem ulimit: mawk 1.3.3
root@asdf-VirtualBox:~# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 51331
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 51331
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
root@asdf-VirtualBox:~#
awkwersje na dwóch komputerach?
out.txt? Czy to samo polecenie działa, jeśli wypróbujesz go na mniejszym pliku? Ilu użytkowników na komputerze? Czy dostępna była wystarczająca ilość pamięci dla procesu? Czy jest coś specjalnego w linii 8547098 pliku wejściowego?