Xargs stdin’den input alıp bunu stdout’a echo ile basar.
ctrl-d ile stdout’a sonuc basılabilir.
xargs komutunun newline karakterlerini gözardı etmesine dikkat edelim.
[fatih@fatihoz ~]$ xargs deneme1 deneme2 yeni satır1 deneme1 deneme2 yeni satır1
“-t” parametresi ile xargs’in echo çağırdığı görülebilir:
[fatih@fatihoz ~]$ xargs -t deneme satırı /bin/echo deneme satırı deneme satırı
find ile xargs kullanımı
find ile bulduğumuz dosya isimlerini xargs’e input girip echo dışında iş yürütebiliriz.
Örn:
xargs’nin stdinden input alması ile ilgili bir diğer örnek:
[fatih@fatihoz ~]$ echo a b c d e | xargs a b c d e
xargs’nin stdout’a bastığı çıktının bir satırda kaç adet olacağı “-n” parametresi ile verilebilir:
[fatih@fatihoz ~]$ echo 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | xargs -n 3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [fatih@fatihoz ~]$ echo 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | xargs -n 4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
“-p” parametresi ile kullanicinin doğrulaması sağlanabilir:
[fatih@fatihoz ~]$ echo 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | xargs -p -n 4 /bin/echo 1 2 3 4 ?...y /bin/echo 5 6 7 8 ?...1 2 3 4 y /bin/echo 9 10 11 12 ?...5 6 7 8 y /bin/echo 13 14 15 16 ?...9 10 11 12 y /bin/echo 17 ?...13 14 15 16 y 17
find ile bulduğumuz dosya isimlerini xargs’ye sokabiliriz
Örn:
Dosya içeriklerine bakalım [fatih@fatihoz deneme]$ grep . * 1.txt:Birinci dosyanin baslangici 1.txt:123123123123 123 12 3 12 31 23 1 2312 3 123 1.txt:123 1.txt:12 1.txt:3 1.txt:12 1.txt:3 1.txt:12312312432454 1.txt:5 1.txt:3 1.txt:45 1.txt:34 1.txt:5 2.txt:İkinci dosyanin baslangici 2.txt:12312 5345 anan3 12312345 2.txt:34 2.txt:5 txt dosyalarda "dosyanin" metnini arayalim [fatih@fatihoz deneme]$ find . -name "*.txt"| xargs grep "dosyanin" ./2.txt:İkinci dosyanin baslangici ./1.txt:Birinci dosyanin baslangici txt dosyalarini silelim [fatih@fatihoz deneme]$ find . -name "*.txt"| xargs rm -rf
Bir cevap yazın