Kako izvajati ukaze iz standardnega vnosa z uporabo Tee in Xargs v Linuxu
Med uporabo ukazne vrstice lahko neposredno posredujete rezultate enega programa (na primer orodje, ki ustvari nekaj awk, za nadaljnjo obdelavo) z uporabo cevovoda.
Dve najpomembnejši pripomočki ukazne vrstice, ki jih je mogoče uporabiti s cevovodi za izgradnjo ukaznih vrstic, so:
-
xargs
- bere tokove podatkov iz standardnega vnosa, nato ustvarja in izvaja ukazne vrstice. -
tee
- bere iz standardnega vhoda in hkrati zapisuje v standardni izhod in eno ali več datotek. To je bolj ukaz za preusmeritev.
V tem preprostem članku bomo opisali, kako sestaviti in izvesti več ukazov iz standardnega vhoda z uporabo ukazov pipe, tee in xargs v Linuxu.
Najpreprostejša skladnja za uporabo pipe, ki ste jo morda že videli v ukazih v številnih vadnicah za Linux, je naslednja. Lahko pa zgradite daljšo ukazno vrstico z več ukazi.
$ command1 args | command2 args OR # command1 args | command2 args | command3 args ...
Spodaj je primer uporabe cevovoda za prenos izhoda ukaza head.
$ dmesg | head
Kako uporabljati xargs za izvajanje ukazov
V tem primeru drugi ukaz pretvori izhod več vrstic v eno vrstico z uporabo xargs.
$ ls -1 *.sh $ ls -1 *.sh | xargs
Če želite šteti število vrstic/besed/znakov v vsaki datoteki na seznamu, uporabite spodnje ukaze.
$ ls *.sh | xargs wc -l #count number of lines in each file $ ls *.sh | xargs wc -w #count number of words in each file $ ls *.sh | xargs wc -c #count number of characters in each file $ ls *.sh | xargs wc #count lines, words and characters in each file
Spodnji ukaz najde in rekurzivno izbriše imenik All
v trenutnem imeniku.
$ find . -name "All" -type d -print0 | xargs -0 /bin/rm -rf "{}"
Ukaz find z možnostjo -print0
omogoča tiskanje celotne poti imenika na standardni izhod, ki mu sledi ničelni znak in zastavica -0 xargs
obravnava prostor v imenih datotek.
Druge praktične primere uporabe ukazov xargs najdete v teh člankih:
- Kako kopirati datoteko v več imenikov v Linuxu
- Preimenuj vse datoteke in imena imenikov v male črke v Linuxu
- 4 načini za paketno pretvorbo PNG v JPG in obratno
- 3 načini za brisanje vseh datotek v imeniku, razen ene ali nekaj datotek z razširitvami
Kako uporabljati Tee z ukazi v Linuxu
Ta primer prikazuje, kako poslati izhod ukazov na standardni izhod in shraniti v datoteko; spodnji ukaz vam omogoča ogled najbolj izvajanih procesov glede na največjo porabo pomnilnika in procesorja v Linuxu.
$ ps -eo cmd,pid,ppid,%mem,%cpu --sort=-%mem | head | tee topprocs.txt $ cat topprocs.txt
Če želite dodati podatke v obstoječe datoteke, podajte zastavico -a
.
$ ps -eo cmd,pid,ppid,%mem,%cpu --sort=-%mem | head | tee -a topprocs.txt
Več informacij najdete na straneh za tee in xargs.
$ man xargs $ man tee
To je vse! Ne pozabite si ogledati našega posebnega članka: A - Z ukazi Linuxa - pregled s primeri.
V tem članku smo opisali, kako ustvariti ukazne vrstice z uporabo cevovodov; ukaze xargs in tee. Na spodnjem obrazcu za povratne informacije lahko postavite kakršno koli vprašanje ali delite svoje mnenje.