Giunsa Pagpadagan ang mga Sugo gikan sa Standard Input Gamit ang Tee ug Xargs sa Linux


Samtang naggamit sa command line, mahimo nimong direktang ipasa ang output sa usa ka programa (pananglitan usa ka himan nga makamugna og pipila ka awk, alang sa dugang nga pagproseso), gamit ang pipeline.

Duha sa labing hinungdanon nga mga gamit sa linya sa command nga magamit sa mga pipeline aron magtukod mga linya sa mando mao ang:

  • xargs – nagbasa sa mga stream sa datos gikan sa standard input, dayon nagmugna ug nagpatuman sa command lines.
  • tee – nagbasa gikan sa standard input ug dungan nga nagsulat ngadto sa standard nga output ug usa o daghan nga mga file. Kini labaw pa sa usa ka redirection nga sugo.

Niining yano nga artikulo, among ihulagway kung giunsa paghimo ug pagpatuman ang daghang mga mando gikan sa standard input gamit ang mga tubo, tee ug xargs nga mga mando sa Linux.

Ang pinakasimple nga syntax sa paggamit sa usa ka tubo, nga tingali nakita na nimo sa mga sugo sa kadaghanan sa mga tutorial sa Linux, mao ang mosunod. Apan makahimo ka og mas taas nga command line nga adunay daghang mga command.

$ command1 args | command2 args 
OR
# command1 args | command2 args | command3 args ...

Sa ubos usa ka pananglitan sa paggamit sa pipeline aron maipasa ang output sa head command.

$ dmesg | head

Giunsa Paggamit ang xargs sa Pagdagan sa mga Sugo

Niini nga pananglitan, ang ikaduha nga sugo nag-convert sa muti-line nga output ngadto sa usa ka linya gamit ang xargs.

$ ls -1 *.sh
$ ls -1 *.sh | xargs

Aron maihap ang gidaghanon sa mga linya/pulong/mga karakter sa matag file sa usa ka lista, gamita ang mga sugo sa ubos.

$ 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

Ang sugo sa ubos mangita ug balikbalik nga nagtangtang sa direktoryo nga ginganlan og All sa kasamtangan nga direktoryo.

$ find . -name "All" -type d -print0 | xargs  -0 /bin/rm -rf "{}"

Ang command sa pagpangita nga adunay opsyon nga -print0 nga aksyon makapahimo sa pag-imprinta sa tibuok nga agianan sa direktoryo sa standard nga output, gisundan sa usa ka null nga karakter ug -0 xargs nga bandila naghisgot sa luna sa mga filename.

Mahimo nimong makit-an ang uban pang praktikal nga xargs command nga mga pananglitan sa paggamit niini nga mga artikulo:

  1. Unsaon Pagkopya og File ngadto sa Daghang Direktoryo sa Linux
  2. Ilisan ang Tanan nga mga File ug Direktoryo nga Ngalan ngadto sa Lowercase sa Linux
  3. 4 Mga Paagi sa Batch Pag-convert sa Imong PNG ngadto sa JPG ug Vice-Versa
  4. 3 Mga Paagi sa Pagtangtang sa Tanan nga mga File sa Direktoryo Gawas sa Usa o Pipila ka mga File nga adunay mga Extension

Giunsa Paggamit ang Tee nga adunay mga Sugo sa Linux

Kini nga pananglitan nagpakita kon unsaon pagpadala sa command output ngadto sa standard output ug i-save sa usa ka file; ang sugo sa ubos nagtugot kanimo sa pagtan-aw sa mga top running nga mga proseso pinaagi sa pinakataas nga memorya ug paggamit sa CPU sa Linux.

$ ps -eo cmd,pid,ppid,%mem,%cpu --sort=-%mem | head | tee topprocs.txt
$ cat  topprocs.txt

Aron idugang ang data sa usa ka kasamtangan nga (mga) file, ipasa ang -a nga bandila.

$ ps -eo cmd,pid,ppid,%mem,%cpu --sort=-%mem | head | tee -a topprocs.txt 

Makita nimo ang dugang nga impormasyon sa tee ug xargs man page.

$ man xargs
$ man tee

Kana lang! Ayaw kalimti ang pagsusi sa among espesyal nga artikulo: A – Z Linux Commands – Overview with Examples.

Niini nga artikulo, among gihulagway kung giunsa paghimo ang mga linya sa command gamit ang mga pipeline; xargs ug tee commands. Mahimo kang mangutana o makapaambit sa bisan unsang mga hunahuna pinaagi sa feedback form sa ubos.