Shell/Command STDOUT inci hat almak için Bash
Sen STDOUT inci hat almak sağlayacak herhangi bir bash komut var mı?
Yani, bu alacağını bir şey
$ ls -l
-rw-r--r--@ 1 root wheel my.txt
-rw-r--r--@ 1 root wheel files.txt
-rw-r--r--@ 1 root wheel here.txt
ve böyle bir şey yapmak
$ ls -l | magic-command 2
-rw-r--r--@ 1 root wheel files.txt
Farkındayım bunun kötü bir uygulama yazarken komut olması gerektiği gibi, yeniden, AMA ne zaman çalışma ile kabuk her geçen gün olacak kullanışlı beni edebilmek için filtre benim STDOUT böyle bir şekilde.
Ben de bu yarı-önemsiz yazmak için komut tamponu (STDOUT, belirli bir hat dönüş) olacağı, ama eğer bazı varsa bilmek istiyorumstandartkomut bensiz bir yere bir script bırakarak kullanılabilir olacak bunu yapmak için kabuk.
CEVAP
sed
, sadece çeşitli kullanarak:
ls -l | sed -n 2p
Kullanarak bu alternatif, daha verimli görünüyor beri durur okumaya giriş yaparken gerekli çizgi baskılı, Mayıs üretmek bir SİGPİPE beslenme süreci, bir devre oluşturmak istenmeyen bir hata iletisi:
ls -l | sed -n -e '2{p;q}'
ls
SİGPİPE bu ayaklanmaz bu bir komut değil ama ben genelde ilk, zaten yazın daha kolay olan) kullanan yeterince sık gördüm.
Satır: bir dizi için
ls -l | sed -n 2,4p
Çizgiler: birkaç aralıkları için
ls -l | sed -n -e 2,4p -e 20,30p
ls -l | sed -n -e '2,4p;20,30p'
Nasıl ve bash ile bir dosya için hem s...
Kendisi tam yolunu almak için bir bash...
almak için bash aracı bir dosyadan sat...
Bash: eğer herhangi bir komut başarısı...
Nasıl bash script bayrakları ile değiş...