akerro
g/Linux

@duxet @zskk @Writer znacie basha? mam problem z przeslaniem parametrow z uzyciem xargs

./program <tutaj idzie xargs -n1 cat file.txt> <tutaj drugi parametr do programu podany ręcznie>

i na stdout chce miec output programu a ciagle dostaje output xargs ;/

#
zskk

@akerro: po co ci xargs do tego? i zapomniales o `` a raczej bardziej bash-koszernych $( komenda)

#
akerro

@zskk: no w ogole pominalem skladnie basha, xargs zeby do ./program przesłać po jednej linijce z pliku, ktory ma ich kilkaset

#
duxet

@akerro: spróbuj może w ten sposób: ./program `<tutaj idzie xargs -n1 cat file.txt>` <tutaj drugi parametr do programu podany ręcznie>

#
duxet

@zskk: kurde, byłeś szybszy, chciałem napisać to samo :<

#
akerro

@duxet: hehe znalazłeś buga, gratulacje :D

#
akerro

@zskk: @duxet: nie mam wtedy zadnego outputu, program waliduje input, powinien wyswietlic error albo accept

#
zskk

@duxet: to jest brzydkie, zamiast "cat plik" zrobic lepiej " < plik"

#
zskk

@akerro: ./program $( xargs -n1 < plik.txt | head -n1 ) $drugi_param

#
akerro

@zskk: nie wiem co jest, w ogole nie mam ani bledu ani potwierdzenia, jakby nie wykonywalo tego $()

w top sie nie pojawia program walidujacy a powinien zabrac 100% cpu

#
zskk

@akerro: a co masz w pliku? :>

no i wklej jak to wolasz, przykladowe poprawne zawolanie itp. z fusów nie bede wrozyc ;)

#
akerro

@zskk: 67mb linijek, kazda linka to jedlo slowo, cos jak slownik do bruteforca

#
zskk

@akerro: okej, ale chyba sie nie rozumiemy. chcesz przekazac 1 (slownie jeden) parametr z tego pliku, zakladam ze 1 slowo z 1 linii, a potem jako drugi parametr chcesz podac twoj recznie wklepany, rajt?

#
akerro

@zskk: dokladnie

#
akerro

@zskk: zadne z tych nie zadziałało, output ./valid ma isc na stdout obojetnie czy jako out czy err

1000 [2014-01-17 10:39:31 GMT] ./valid code xargs -n1 cat ../crunch/dict.txt '60'

1001 [2014-01-17 10:39:50 GMT] ./valid code xargs -n1 cat ../crunch/dict.txt 60

1002 [2014-01-17 10:40:48 GMT] ./valid code xargs -n1 cat ../crunch/dict.txt 60

1003 [2014-01-17 10:40:55 GMT] ./valid code xargs -n1 cat ../crunch/dict.txt

1004 [2014-01-17 10:41:22 GMT] ./valid code $(xargs -n1 cat ../crunch/dict.txt)

1007 [2014-01-17 10:41:53 GMT] ./valid code < cat ../crunch/dict.txt 60

1008 [2014-01-17 10:42:50 GMT] ./valid code $(xargs -n 1 cat ../crunch/dict.txt | head -n1) 60

1009 [2014-01-17 10:43:07 GMT] ./valid code $(xargs -n 1 cat ../crunch/dict.txt) 60

1010 [2014-01-17 10:43:43 GMT] ./valid code $(xargs -n 1 cat ../crunch/dict.txt) 60

1011 [2014-01-17 10:44:07 GMT] ./valid code test 60

1012 [2014-01-17 10:44:56 GMT] ./valid code $(xargs -n1 cat ../crunch/dict.txt) 60

1013 [2014-01-17 10:47:29 GMT] ./valid code $(xargs -n1 cat ../crunch/dict.txt ) 60

1014 [2014-01-17 10:47:48 GMT] history

#
borysses

@akerro: Jestes pewny, ze jestes w bashu? Jaki masz system?

#
zskk

@akerro: czyli ./program dupa1 dupa2 i to ma ci zająć w chuj czasu procesora, tak? a wez wklej mi output z

head -n1 file.txt

#
akerro

@zskk: $head -n1 ../crunch/dict.txt kkk

@borysses: jestem pewien ;) probowałem na zsh ale tam output z cmd jest wykonywany jako kolejna komenda...

#
zskk

@akerro: innymi slowy, jaki masz wlaciwie problem? zakladam ze zle podchodzisz do tego. podejrzewalnie chcesz:

dla kazdego slowa w slowniku file.txt wykonaj komende ./program slowo parametr2 < ???

#
akerro

@zskk: znaczy tam 1011 działo, wywaliło błąd ze not valid

#
akerro

@zskk:

dla kazdego slowa w slowniku file.txt wykonaj komende ./program slowo parametr2 < ???
wynik programu ./progam przekieruj na stdout.

tak :P

#
zskk

@akerro: pewnie tobie zalezy na:

for word in $(xargs < file.txt); do ./valid code $word; done

edytka, te 60 skopiowalem z twoich prob, pewnie go nie chcesz :E

#
akerro

@zskk: dobra chyba mam XD

nie rozumiem teraz czemu, ale xargs -n1 cat test nie wyswietlało... nic oO moze to jakis moj konfig w .bashrc ktorym sobie cos zrobilem :>

bash: /usr/bin/xargs: Argument list too long

teraz mam takie XD

#
borysses

@akerro: CAT=$(cat file.txt) for Line in $CAT do awk 'BEGIN{FS="Name&gt;";RS="/"}{print $2}' $Line &gt; file2.txt done

#
akerro

@borysses: daj kod po spacjach nie w znaczniku kod :>

#
borysses

@akerro: To mu zrob sane :)

#
zskk

@borysses: strzelasz z armaty do muchy. @akerro - zapomnialem ze ty masz tego 60mb

#
akerro

@zskk: 2mb juz nie chce przepuscic ;/ 60mb to dane testowe, w realu musze przepuscic prawie 600gb XD

#
zskk

@akerro: zaraz ci to napisze, uzywanie awka to armata, przy 600gb textu to katastrofa bedzie ;)

#
akerro

@zskk: juz przy xargu jest katastrofa jak 2mb nie chce wziac :D

wczoraj mialem caly validator napisany w ruby, ale przy 10 probach na sekunde to mozna se darowac, do konca swiata by mi to nie przeszlo

#
zskk

@akerro: tego, masz 100% pewnosc ze masz 1 slowo per linia?

#
akerro

@zskk: tak, same znaki ascii, zadnych znakow specjalnych ani bialych znakow oprocz newline ofc

#
zskk

@akerro:

while read line; do for word in $(echo $line | xargs); do ./valid code $word; done; done < file.txt

@borysses: jak catujesz plik to potrzeba go zassac do ramu/swapu, on ma miec 600gb plik, co odpada as well. czytanie per linia bedzie spoko, mozna by sie pokusic o gnu parallel, to wtedy by mozna bylo nasycic kontroler, io, wątki w cpu i tak dalej...

#
akerro

@zskk: dzięki to działa :*

#
akerro

@zskk: taa probowalem z parallel, ale sam validator jest wielowatkowy i on sam juz zaciaga 100% cpu na tym skrypcie basha...

#
zskk

@akerro: no to masz nauczke, nigdy nie proponuj rozwiązania tylko opisz na przyszlosc problem dokladnie i nie sugeruj niczego. co wiecej - daj zawsze przykladowe poprawne zawolanie, zawartosc pliku. zrobilbym to w pierwszej minucie przy poprawnym inpucie z twojej strony

#
zskk

@akerro: 100%cpu nie rowne innemu 100% cpu, nie wiesz czy nasycasz IPC w procesorze, prawda jest taka, ze mozna zawsze wydusic coś więcej ;)

#
akerro

@zskk: spoko ;) siedzialem z tym troche dluzej bo probowalem przez xargs albo | przeslac zeby uniknac cata zamula mi serwer teraz tak ze napisany tekst pojawia mi sie z opoznieniem...

#
borysses

@zskk: Myslalem, ze raczej maly pliczek na kilka k lini a nie 600gb O_o

#
Writer

@akerro: Z ciekawości jaki plik tekstowy zajmuje 600GB? Jakaś baza? Czy nie możesz wyjawić tajemnicy? ;)

#
akerro

@Writer: ps

#
Writer

@akerro: ps

#
akerro

@duxet nie moge usunac tego wpisu wyzej, on mial isc na priv nie tutaj -.- po usunieciu i odswiezeniu strony on nadal tam jest :d

usunalem jego tresc przez edycje :P

#
akerro

@Writer: masz na pw czym generowane, crunchem do pliku tekstowego

#
Writer

@akerro: okay, kumam. ;)

#
borysses

@Writer: Pewnie "slownik" pisze...

#