xargs

Izvor: Wikipedija

xargs je Unix naredba, obično dostupna na svim *nix operacijskim sustavima kao naredba sustava. Služi za izgradnju naredbi tako što sve što dolazi na standardni ulaz (STDIN) ne prosljeđuje naredbi koja slijedi u komadu, nego xargs prosljeđuje ulaz redak po redak. Naredbe kao što su grep i awk mogu prihvatiti standardni ulaz kao parametar putem cijevi (pipe). Međutim, naredbe poput cp, printf-a i echo ne znaju čitati STDIN nego primaju parametre ili kao parametar napisan iza dotične naredbe (cp, echo itd.) ili preko xargs-a. Također, Linux jezgra prije inačice 2.6.23 nije mogla procesirati proizvoljno duge liste parametara,[1] pa je jedino rješenje u bashu ili nekoj drugoj Linux ljusci bila uporaba naredbe xargs.

Primjeri[uredi | uredi kôd]

ls -al | grep '^-' | awk '{ print $1,$5,$9 }' | xargs printf "%s %8s %s\n"

Čemu služi gornji kôd pročitajte u članku AWK, bitno je to da naredbama echo ni printf nije moguće direktno proslijediti ono što želite ispisati, nego je potrebno uporabiti naredbu xargs.

$ echo {0..9} | xargs -n 2
0 1
2 3
4 5
6 7
8 9

echo {0..9} ispisat će "0 1 2 3 4 5 6 7 8 9", ako želite neki drugi oblik ispisa možete uporabiti for petlju, ali je u bashu elegantnije rješenje naredba xargs, koja može prosljeđivati parametre jedan po jedan, dva po dva odnosno proizvoljno zadani broj njih odjednom.

Izvori[uredi | uredi kôd]

  1. www.gnu.org, "GNU Core Utilities Frequently Asked Questions", Recent News: The Linux kernel has removed the classic ARG_MAX limitation. See the changeset on git.kernel.org for the change. This was released with the linux-2.6.23 kernel., pristupljeno 12. kolovoza 2016.

Vanjske poveznice[uredi | uredi kôd]

Nedovršeni članak Xargs koji govori o računarstvu treba dopuniti. Dopunite ga prema pravilima Wikipedije.