Xargs Kullanımı

Ocak 2nd, 2014 § Yorum yok

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

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Ne yapıyorum ben!?

Xargs Kullanımı başlıklı yazıyı okuyorsun.

Üst Veri