#awk najlepsze najnowsze

Boska_Klaudia 2026-01-11 16:48:13 +1
#programista15k

tak myślę że teraz nauka takich rzeczy jak #sed lub #awk co i tak nie były jakoś często używane no ale zdarzało się w świecie Linuksa to teraz w dobie AI już w ogóle nie ma sensu, modele są w stanie odgadnąć rozwiązanie w większości przypadków i nie ma sensu nad tym ręcznie siedzieć. Jakie to będzie mieć konsekwencje na przyszłość to już inny temat.
SystemFound 2026-01-11 22:41:40 +1
Do momentu, aż model nie zaproponuje ci rozwiązania z pobraniem paczki js-a z pierdyliard zależnościami do prostego rozwiązania,
Owszem AI pisze regexy jak szalone, ale nadal z tyłu głowy musisz mieć co chcesz mniej więcej użyć i jak.

https://www.npmjs.com/package/is-even ( ͡° ͜ʖ ͡°)
Boska_Klaudia 2026-01-11 22:44:17 +1
@SystemFound: ale ja tu pisałem o skryptach w shellu używanych głównie do helperów i wrapperów albo w build systemach, nie programowaniu w JS
wytrzzeszcz 2022-04-06 15:06:41 +1
Zrobiłem listę 64 różnych języków programowania i w tagu:
#bitwyjezykowe
będziemy sobie je porównywać który lepszy
W lewym narożniku #apl język znany ze stosowania symboli zanim to było modne
W prawym narożniku #awk znany i kochany język przetwarzania tekstu, spotykany chyba na wszystkich smakach unixa
głosowanie plusami w kometarzach
wytrzzeszcz 2022-04-06 15:07:16 +1
wybieram:
APL
wytrzzeszcz 2022-04-06 15:07:24 +18
wybieram:
AWK
pokaż komentarze (2)
fifiak 2020-09-26 17:45:33 +2
mam w pliku tekstowym

Marek
Hania
Marcin
jak za pomocą AWK zrobić by było to w takiej formie

Marek;Hania;Marcin ? Interesuje mnie też rozwiązanie by zrobić to na odwrót.

#devops #linux #programowanie #bash #awk
uketrab 2020-09-26 17:50:30 +1
@fifiak: napisalbym ale chyba wieksza przysluge ci zrobie jak powiem zebys wpisal w google
awk column to row
K.....3 2020-09-26 18:27:41 +5
@fifiak: albo tr:

$ cat /tmp/a
1
2
3
4
5
$ cat /tmp/a | tr '\n' ';'
1;2;3;4;5;
pokaż komentarze (10)
d.....z 2020-05-04 13:53:59 +17
ⴲⴲⴲ

Pod tagiem #devopsiarz (obserwuj lub czarnolistuj) publikuję od czasu do czasu informacje o ciekawych programach,
bibliotekach z działki #devops i nie tylko - najczęściej #golang i #python, ale też #rustlang i #haskell

Pełna wersja tego zestawienia ☞ https://devopsiarz.pl/zestawienia/zestawienie-linkow-materialow-04-05-2020/

A jeśli chcesz jeszcze więcej, zapisz się do mailingu ☞ https://devopsiarz.pl/newsletter/zapisz/

Jeśli chcesz, aby Cię tu wołać do moich materiałów, zapisz się do mirkolisty ☞ https://devopsiarz.pl/mirkolista

Jeśli zestawienie uważasz za wartościowe - podziel się nim z innymi, każdy autor robi to w jakiś
sposób dla atencji, ja również. :)

--
--

### Materiał tego zestawienia

https://thenewstack.io/how-io_uring-and-ebpf-will-revolutionize-programming-in-linux/

Obszerny artykuł o zmianach na przestrzeni ostatnich miesięcy w kernelu Linux. Czym są
oraz jakie zmiany niosą takie usprawnienia jak eBPF czy ui_uring, w kwestii wydajności
I/O w kernelu i nie tylko.

--
--

### Artykuły

1) https://www.reddit.com/r/learnpython/comments/g2a731/just_a_story_about_sharing_python_with_my_10yo/ - #python

Jak należy rozwiązywać z dziećmi zadania domowe z matematyki za pomocą Pythona,
aby pokazać im jakie to może być dla nich ułatwienie.

--

2) https://realpython.com/sorting-algorithms-python/ - #python

Długi artykuł o niektórych algorytmach sortujących, w przykładach, które
są zaimplementowane za pomocą Pythona.

--

3) https://www.robinwieruch.de/microservices-tradeoffs - #devops

Jeden developer opisuje dlaczego w swoich własnych projektach woli zrezygnować z
mikroserwisów. Polecam przeczytać jego powody, zwłaszcza programistom, którzy
rozwijają coś w pojedynkę.

--

4) https://blog.bojo.wtf/management/2020/04/15/is-haskell-a-bad-choice.html - #haskell #dotnet

Czy Haskell to zły wybór? Przeczytaj tę historię, aby dowiedzieć się jak wyglądało
"wdrożenie" Haskella w jednej firmie wśród programistów .NET i jakie problemy to
napotkało. Myślę, że to ciekawy materiał dla kogoś, kto zastanawia się nad
wprowadzeniem jakiejś fancy technologii do projektu legacy :-)

--

5) https://mudit.blog/rust-tips-and-tricks/ - #rustlang

Kilka przydatnych tips&tricks odnoszących się do programowania w Rust.

--

6) https://blog.golang.org/survey2019-results - #golang

W którymś z poprzednich zestawień było o badaniu programistów Rust, teraz analogicznego
rodzaju badanie, a w zasadzie jego wyniki, jeśli chodzi o świat programistów Go

--

7) https://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-019-2903-5 #java #golang #cpp

Dosyć obszerne porównanie w formie badania trzech języków: Go, Java i C++. Według tego
badania Go okazało się najlepszym kompromisem w związku z wydajnością, z tym, że tutaj według mnie na siłę "wcisnęli" do C++ znany algorytm do GC, co spowodowało, że C++
wychodzi w niektórych testach na powolny. Generalnie artykuł warto przeczytać, ale
według mnie dużo biasu w nim jest.

--

8) https://tpaschalis.github.io/delve-debugging/ - #golang

Znowu podstawy w delve (debugowanie), choć ja wciąż czekam na artykuł, który
wreszcie porządnie uzupełni dokumentacje i jakieś bardziej zaawansowane użycie,
niż tylko stawianie breakpointów, resume i tego typu "podstawy".

--

9) http://adventures.michaelfbryan.com/posts/lastpass/ - #rustlang

Artykuł o tym jak developer napisał bibliotekę do lastpass w Rust, ale wcześniej musiał
odwalić reverse engineering niektórych jego elementów. Ponieważ dosyć dokładnie opisał
ten proces, zachęcam do zerknięcia w artykuł

--

10) https://www.youtube.com/watch?v=Axho_FctUUU - #produktywnosc #biznes

[PL] Piotr Nabielec z produktywni.pl opowiada o swojej ścieżce biznesowej, czyli od
etatu do własnej firmy i jak z grubsza ten proces wyglądał. Być może będzie to inspirujące
dla Was, dlatego zamieszczam.

--

11) https://blog.thoughtram.io/string-vs-str-in-rust/ - #rustlang

Czym się różni String i &str w Rust, czyli coś, co zdecydowanie warto wiedzieć.

--

12) https://github.com/satwikkansal/wtfPython - #python

Jak należysz do tych, którzy nie przepadają za Pythonem i chcesz błysnąć na (obecnie wirtualnych) meetingach, gdy Ci go wciskają, to ta strona będzie Twoim sprzymierzeńcem.

Oczywiście można błysnąć też na rodzinnych spotkaniach, o ile żarty "informatyków" będą
tam dobrze rozumiane. :-)

--

13) https://www.rosettacode.org/wiki/Check_that_file_exists - #golang #rustlang #python

Kod sprawdzający czy plik istnieje w wielu językach, w tym w Go, Haskellu czy Pythonie.

--

14) https://ferd.ca/awk-in-20-minutes.html - #awk

AWK w 20 minut - jak zawsze chciałeś(aś) się awka nauczyć, to jest to coś dla Ciebie,
zakładając, że nie przepadasz za perlem.

--

15) https://evrone.com/rob-pike-interview - #golang

Wywiad z jednym z twórców języka Go - Robem Pike. Jeśli chcesz się dowiedzieć m.in jak Google traktuje ten język, to zapraszam do wywiadu.

--

16) https://kernelnewbies.org/Linux_5.6 - #linux

Jeśli chcesz wiedzieć, co zmieniło sie w kernelu 5.6, to zobacz jaką ktoś wykonał tytaniczną pracę na tej stronie tłumacząc i katalogując te zmiany, aby jak najmniej
tajmniczo brzmiały.

--

17) https://trstringer.com/systemd-timer-vs-cronjob/ - #linux

To może być kij w mrowisko, ale developer wyjaśnia dlaczego woli systemd-timer zamiast
starego, poczciwego crona.

--

18) https://codeopolis.com/posts/25-basic-docker-commands-for-beginners/ - #docker #devops

25 komend Dockera z przykładami, dla początkujących. Czyli szybka ściągawka.

--

19) https://code.joejag.com/2020/a-month-with-powershell.html - #powershell #bash

Jeden osobnik spędził 2 miesiące z PowerShellem na linuksie zamiast "normalnych"
powłok. Tutaj jego przemyślenia. Jeśli chcesz się dowiedzieć, czy były to 2 miesiące
pełne ascezy, to zerknij w artykuł

--

20) https://www.hanselman.com/blog/QuarantineWorkIsNotRemoteWork.aspx #pracazdalna #pracait

Jeśli OBECNIE czujesz, że praca zdalna nie jest dla Ciebie, jestem jednym z tych głosów,
które mówią, że praca zdalna w czasie kwarantanny, to nie jest ta sama praca zdalna, w sytuacji, gdy wszystko w kraju i społeczeństwie "działa normalnie".

--

21) https://gankra.github.io/blah/text-hates-you/ - #programowanie

Dużo ciekawych informacji o renderowaniu tekstu - jeżeli zawsze Cię wkurzało, że nie kumasz co znaczą niektóre opcje przy ustawieniach fontów, zerknij tutaj.

--

22) https://twitter.com/GeePawHill/status/1256342997643526151 - #programowanie

Programista opowiada na Twitterze o swoich dawnych przygodach i tym jak sprzedawał procesor tekstu, który po 1024 zapisach zamazywał dysk.

--

23) https://www.youtube.com/watch?v=IULkXAHjL_s - #apple

YouTuberzy z Max Tech sprawdzają czy te informacje o przegrzewaniu się MacBook Air 2020 nie są przesadzone.

--

24) https://www.macrumors.com/guide/ipad-pro-magic-keyboard-tips/ - #apple

Kilka tipów odnośnie pracy na nowej Magic Keyboard dla iPada Pro

--

25) https://ljvmiranda921.github.io/notebook/2020/03/06/jupyter-notebooks-in-2020/ - #python

Tutorial jak używać Jyputer Notebooks - czym one są i dlaczego ułatwiają pracę to dowiesz się z tego artykułu. Mocno

--

26) https://www.reddit.com/r/devops/comments/fyi3gh/aws_code_tool_chain/ - #devops #aws

Jestem idiotą? Chyba jestem. Te i inne problemy doświadczonego developera/architekta (tak
się przedstawia), przy próbie ogarnięcia swojej aplikacji na AWS i pyta innych, czy mają podobnie/

--
--

### Libeczki/Software/Repozytoria

1) https://github.com/gofiber/fiber - #golang #webdev

Zaawansowany i szybki web framework do Go, inspirowany Express.js

--

2) https://github.com/argoproj/argo - #golang #kubernetes

Rozszerzenie do Kubernetes do całej orkiestracji CI/CD, eventów, deploymentu itp

--

3) https://github.com/aaronjanse/3mux - #golang

W skrócie określiłbym to jako tmux napisany w Go

--

4) https://pydoit.org/ - #python

Interesujący i prosty tool do automatyzacji w Pythonie

--

5) https://github.com/lucid-kv/lucid - #rustlang

Key-value storage napisany w Rust



#programista15k #programowanie #technologia #komputery #sysadmin
longstar 2020-05-04 15:33:51 +1
7) https://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-019-2903-5 #java #golang #cpp

Dosyć obszerne porównanie w formie badania trzech języków: Go, Java i C++. Według tego
badania Go okazało się najlepszym kompromisem w związku z wydajnością, z tym, że tutaj według mnie na siłę "wcisnęli" do C++ znany algorytm do GC, co spowodowało, że C++
wychodzi w niektórych testach na powolny. Generalnie artykuł warto przeczytać, ale
według mnie dużo biasu w nim jest.

@devopsiarz: akurat ten algorytm GC to najmniejsze zmartwienie, sam kod, daje wiele do myślenia i raczej mówi o tym ze próbowali napisać coś w C++ bez jego znajomości
pokaż komentarze (1)
vv32 2020-03-28 14:29:57 +0
#linux #awk #sed
Mireczki, mam do zrobienia takie zadanie:

"Z wyników zwracanych przez polecenie ifconfig wybierz informacje o adresie IP oraz adresie
MAC wszystkich aktywnych kart sieciowych. Informacje te zapisz do pliku interfaces.txt,
który powinien zawierać trzy kolumny: int_name, ip_address, mac_address a kazdy wiersz
opisywać określoną, aktywną kartę."

Moje pytanie jest takie, w jaki sposób mogę "wyciąć" informacje o adresie IP i MAC, a następnie przenieść do osobnego pliku przy pomocy awk lub sed?
secondreality 2020-03-28 14:39:23 +4
y.....m 2020-03-28 14:44:32 +1
@vv32: ziomek, to są podstawy podstaw. Przerob sobie jakiś kurs linuksa.
pokaż komentarze (4)
u.....8 2019-04-17 17:41:30 +2
#regexp #sed #awk #programowanie
Poproszę o pomoc z windowsowym (gnuwin32) awk/gawk/sed lub alternatywą pod windowsem.

Pliki z danymi wejściowymi mają format (przykładowy wiersz)
yzz-0000001000-v1000,"54,76","54,76",0,"54,76","54,76"
Chcę otrzymać
yzz-0000001000-v1000;54,76;54,76;0;54,76;54,76
czyli zmienić separatory między polami z przecinka na średnik, jednocześnie nie zmieniajac separatorów części ułamkowych.

Znalazlem w sieci sugestie regexpa
/(,)(?=(?:[^"]|"[^"]*")*$)/
i na testerze online jest ok, ale nie potrafię wyescapować tak by działało.
gawk "{gsub(/(,)(?=(?:[^\""]|\""[^\""]*\"")*$)/,\""x\""); print}" plikwejsciowy
nie zmienia nawet pierwszego przecinka.
Co robię źle?
Niestety przy tym zadaniu nie mam możliwości przesiadki na linuxa. Preferowane rozwiązanie nie zakłada instalacji pythona/perla/itp
u.....8 2019-04-17 18:07:10 +1
lub żeby się nie kopać z escapeami; plik ze skryptem dla awka zawierający
{gsub(/,(?=(?:[^"]*"[^"]*")*[^"]*$)/,"aaaaA");}1
aktualnie nie działa :-(
Oo-oO 2019-04-17 23:11:59 +0
Interesujące, ale racji obostrzeń (i drobnego wpływu wina które skonsumowalem ;)) sugeruję rozbicie po prostu na trzy przejscia, w pierwszym łap "\d+,\d+," jako grupę i zamieniaj drugi przecinek na srednik, w drugim [a-Z-0-9]*, by tez pierwszy srednik zalatwic w trzecim wiadomo, wywalic cudzyslowie. W tym stanie niestety to najlepsza podpowiedz jaka moga zaoferowac :)
@uhu8
MateuszPolska 2019-01-26 13:04:01 +0
witam wszystkich czy ktoś ogarnia programowanie w awk mam napisać program w którym będzie można : dodawać nowego klienta
dodawać nowy samochód
Usuwać użytkownika
usuwać samochód
sprzedaż samochodu
Modyfikacja atrybutów opisujących użytkownika i samochodu , np.. aktualizacja informacja,
Wyświetlenie listy użytkowników (posortowanych z możliwością sortowania po dowolnych atrybutach)
wyświetlanie listy samochodów posortowanych z możliwością sortowania po dowolnych atrybutach)

informacje mają być w txt , ogarnia ktoś i pomoże napisać kod ?

#programowanie #awk #informatyka #studia
eth0 2019-01-26 13:21:36 +1
@MateuszPolska:
Powiedz prowadzącemu te zajęcia, który wymyślił takie zadanie, żeby się stuknął w głowę, bo nikt na produkcji tak nie robi. Pójdziesz później do pracy i będziesz rzeźbił aplikacje w awk? Awk to potężne narzędzie, ale bez przesady żeby robić w nim takie wydumane zadania. Widzę, że na studiach nic się nie zmieniło, wciąż te same zakute łby oderwane od rzeczywistości, ja miałem podobne przygody z pascalem, dawno wyszedł już z zużycia, ale to był konik prowadzącego i nas gnębił z tego języka na milion sposobów. To już w technikum informatycznym mieli lepsze pojęcie, bo pisaliśmy w java, c ++, czyli coś bliżej tego co na tamte czasy było wykorzystywane w firmach.
eth0 2019-01-26 13:42:32 +2
@wiesiu2:
To pozostaje mu zaprzyjaźnić się z dokumentacją awk i napisanie tego skryptu.
pokaż komentarze (4)
dzaku 2018-02-03 15:46:31 +3
Rozlazły jednokomórkowiec #bash #gnuolot dal wszystkich aby mieć zawsze pod ręka sprawdzajkę kursu
bash <(curl -sS https://raw.githubusercontent.com/dzaczek/blogscripts/master/bcplot.sh)

wymaganiia #gnuplot #bash #awk #sed #linux :)
ulises 2018-02-03 16:01:58 +0
@dzaku: to trochę nierozsądne odpalanie w ciemno skryptu ściągniętego z sieci ( ͡° ͜ʖ ͡°)
cruc 2018-02-03 16:06:53 +0
@ulises:
szyfrowanie katalogów w toku, prosimy nie przeszkadzać
pokaż komentarze (1)
z.....6 2016-06-03 11:33:10 +1
jak w #awk w #linux dostać się do zamienionych pól przez gensub?

/.*(192\.168\.0\.2[4-5][0-9]+).*up/ { result = gensub(/192\.168\.0\.(2[4-5][0-9]+)/, "\1", "g") ; print $4" "result > "t.log";}

w result mam podmienione pole i jest to cały wiersz a chcę wydrukować tylko jedno pole z result.
RRybak 2016-05-18 09:14:41 +1
Potrzebuję porady. Próbuję ogarnąć awk, ale średnio mi to idzie. Mam ścianę tekstu

`---TRANSACTION 1234, not started
---TRANSACTION 5325, not started
---TRANSACTION 8706456, ACTIVE 849 sec
2 lock struct(s), heap size 360, 1 row lock(s)
MySQL thread id 26674, OS thread handle 0x7f2426942700,
---TRANSACTION 64363, not started`

Zależy mi, żeby wyłapać aktywne transakcje, ale tylko aktywne - powiedzmy - powyżej 100 sekund. Jeśli znajdzie, ma wypluć kolejne 3 linie.
Na razie mam coś takiego:
`
./innodbcheck.sh | awk '/---TRANSACTION.*ACTIVE/{c=3}c&&c--'`

daje:
`
---TRANSACTION 8706456, ACTIVE 849 sec
2 lock struct(s), heap size 360, 1 row lock(s)
MySQL thread id 26674, OS thread handle 0x7f2426942700, `

Ale teraz chciałbym, żeby liczba między ACTIVE a sec była większa od 100 (na przykładzie powyżej 849). Jeśli tam będzie 99, to ma nie dopasować. 101 - ma wyprintować wszystkie 3 linie.

Jakby ktoś mógł mnie przynajmniej naprowadzić. Wiem, że muszę się jakoś odwołać do $4, ale nie mam pojęcia jak połączyć warunek z patternem :/

Mile widziane także jakieś przystępne tutoriale do awk, żeby stopniowo wprowadzały w ten program w stylu "od zera do bohatera" ;)

#linux #awk
no_one 2016-05-18 09:31:31 +1
@RRybak: Bash/grep nie wygodniej?

`$ grep -PA 3 "ACTIVE \d{3,}" plik
--- transaction 34534534, ACTIVE 849 sec
wes1
sdsd1
dasda1
--
--- transaction 34534534, ACTIVE 84932 sec
wwqde3
qas3
das3`

-P włącza perla
-A 3 - pokaż 3 linie po (after) znaleziony string
\d - cyfry
{3,} - 3 i więcej

Plik:

`$ cat plik
--- transaction 34534534, ACTIVE 849 sec
wes1
sdsd1
dasda1
asdas1
--- transaction 3434345, ACTIVE 38 sec
sd2
asda2
f2
asf2
sf2
--- transaction 34534534, ACTIVE 84932 sec
wwqde3
qas3
das3
da3
sd3
ad3
`
j.....u 2016-05-18 09:54:24 +1
@RRybak: ---TRANSACTION.*ACTIVE [0-9]{3,}, chciałem na początku odsiać samym regexem liczby min. 3 cyfrowe, ale widze, że chcesz konkretną liczbę porównywać
ale naiwnie zadziałało {if ($4 > 98) c=3} c&&c-- ( ͡° ͜ʖ ͡°)
$4 to po prostu pozycja po rozdzieleniu tekstu domyślnym separatorem
pokaż komentarze (8)
juan-populista-liberalez 2016-05-10 22:01:24 +1
Czy jest tu jakiś Mirek, który zna się na #programowanie w #awk?
Mam dwa pliki:
PLIK 1:
1 123123 890987 adasd poiuytr qwerty
2 123123 890987 adasd poiuytr qwerty
3 123123 890987 adasd poiuytr qwerty
4 123123 890987 adasd poiuytr qwerty
5 123123 890987 adasd poiuytr qwerty
6 123123 890987 adasd poiuytr qwerty
7 123123 890987 adasd poiuytr qwerty
8 123123 890987 adasd poiuytr qwerty
9 123123 890987 adasd poiuytr qwerty
10 123123 890987 adasd poiuytr qwerty

PLIK 2:

13132
41234
41123
45435
43345

Tak mniej więcej wygląda struktura plików. I teraz chciałbym żeby awk wypisało mi tylko te linie z pliku pierwszego (całe linie), których 2-ga kolumna pasuje do któregoś z rekordów pliku 2 (jest w nim tylko jedna kolumna).

Przeszukałem masę stacka, ale żaden z podanych tam przykładów nie działa.... ( ͡° ʖ̯ ͡°)

Pomocy !
juan-populista-liberalez 2016-05-10 22:15:51 +2
@wytrzzeszcz:

MAM! Dla potomnych: awk -F" " 'NR==FNR{ a[$2]=$1;next } NF{ print $0 ((a[$2]==$2)) }' plik2 plik1

Różnica czasu: było 17s, jest 0.5 :D
sasik520 2016-05-11 10:53:21 +1
@juan-populista-liberalez: no jest mi przykro, że wymyśliłeś tego hasha sam, a ja napisałem za późno ;)
pokaż komentarze (18)
ncpnc 2016-02-09 09:22:45 +1
Kwa!

czemu to nie działa mirki?

echo "2016 cxxvxvcxc" | awk '/^[0-9]{4}/ { print $0 }'

ani to:
`
echo "2016 cxxvxvcxc" | awk '/^[0-9]\{4\}/ { print $0 }'`

Jak dam:

echo "2016 cxxvxvcxc" | awk '/^[0-9]/ { print $0 }'

To działa :(

#programowanie #awk #linux #pytanie
barteqck 2016-02-09 09:29:34 +1
@ncpnc:





































ncpnc 2016-02-09 09:32:55 +0
@barteqck: A ja już wiem.
pokaż komentarze (7)
S.....n 2015-11-26 14:38:17 +1
Mirki spod tagu #programowanie.
Mam dwa pliki:
1) zajmuje 5GB i jest w nim 150mln wierszy "nazwa liczba1 liczba2"
2) zajmuje 60MB i jest w nim 150k wierszy "nazwa liczba0"

Da się je skutecznie (tj. w rozsądnym czasie) połączyć względem kolumny "nazwa"?
W pliku wynikowym (będzie zajmował pewnie ze 200MB) mają być "nazwa liczba0 liczba1 liczba2".
Próbowałem w #python wczytać 150k wierszy - da się ( ͡° ͜ʖ ͡°), ale już znalezienie w 150mln i wypisanie ich do pliku będzie trwać ze 70h.
Próbowałem w #awk coś takiego:
awk 'NR==FNR {h[$1] = $2" "$3; next} {print $1,$2,$3,h[$1]} system("")' plik1 plik2 > plik3
ale właściwie stoi w miejscu i nic nie wypisuje do pliku.


Da się to zrobić szybciej? Czy pod osłoną nocy wrzucać to na klaster komputerowy? ( ͡° ͜ʖ ͡°)

#pytanie #pytaniedoeksperta
G.....n 2015-11-26 14:59:02 +2
@Siotson: Są posortowane? Jeśli tak, to użyj algorytmu sort-merge join.
G.....n 2015-11-26 15:17:36 +3
@Alkreni: Ogólnie to zadanie jest proste, tylko trzeba ogarnąć sposób na uniknięcie pętli o złożoności O(n*m).
Merge-sort join dla posortowanych wejść ma złożoność O(n+m).
Posortowanie pewnie można tutaj ogarnąć w czasie O(n+m), jeśli linie podają się sortowaniu kubełkowemu wg jakiegoś algorytmu.
Kubełki można matchować nawet z użyciem GPU lub wielowątkowo.

IMHO dobra implementacja na SSD + i5 powinna się wykonywać najwyżej 5 minut.
pokaż komentarze (24)