Muhtemelen @slhck tarafından verilen seçeneklerden birini kullanacaktım ama işte bunu yapmanın birkaç yolu daha:
Dizileri, diğer dillerde yaptığınız gibi kullanma:
$ foo=( $(SayStuff) )
$ echo ${foo[2]}
cucumbers
var=()Bir dizi beyan $(command)komutunun çıktısını kaydeder. Böylece, foo=( $(SayStuff) )çıkışını SayStuffdiziye fookaydeder ve sonra echoüçüncü elementtir ${foo[2]}.
sed
$ SayStuff | sed 's/.* \(.*\)/\1/'
cucumbers
sedKomutu (ikame edecektir s///geçen kelime ile) her şeyi. Normal .*ifade, son boşluğa kadar her şeyi eşleştirecek ve ardından son kelimeyi yakalayacak bir boşlukla ( ) eşleşir (\(.*\). Kelime ele geçirildiği için, onu olarak ifade edebiliriz \1.
Daha basit bir sürüm:
$ SayStuff | sed 's/.* //'
cucumbers
darbe
$ foo=$(SayStuff); echo ${foo##* }
cucumbers
Bu, bash'ın dize düzenleme yeteneklerini kullanır, daha fazla ayrıntı için buraya bakın.
Daha Fazla Bash
$ SayStuff | while read a b c; do echo $c; done
cucumbers
Perl, elbette, bunu yapmanın birçok yolu var:
$ SayStuff | perl -lane 'print $F[$#F]'
cucumber
-aMarkaları perlgibi davranmaya awkboşluktan bölme çizgileri ve diziye tasarruf @F. Daha sonra öğesinin son öğesini yazdırırız @F( $#Fiçindeki öğelerin sayısıdır @F). -lPerl her bir yeni satır eklemek söyler print, deyimi -nbu çizgi ile STDIN hattını işlemek gerektiğini ve -ebunun komut satırına verilen komut dosyasını çalıştırmak gerektiğini söyledi.
$ SayStuff | perl -pe 's/.* //'
cucumber
Seçenekler yukarıda açıklandı, sadece son boşluğa kadar her şeyi silip yazdırıyoruz ( -p).
$ perl -le 'print $ARGV[$#ARGV]' $(SayStuff)
cucumbers
Burada Watermelons and cucumbersperl @ARGdizide kaydedilecek argümanlar olarak geçiyoruz ve böylece, son öğesini yazdırıyoruz @ARG.
kandırmaca. Bu, sedboşlukları yeni satırlara dönüştürmek ve sonra tailyalnızca son satırı yazdırmak için kullanır .
$ SayStuff | sed 's/ /\n/g' | tail -n 1
cucumbers
grep ve normal ifadeleri kullanarak -oyalnızca eşleşen dizeyi yazdırır.
$ SayStuff | grep -Po '\w+$'
cucumbers
hile
$ SayStuff | grep -o cucumbers
cucumbers
cutederken, boşluk değişken sayıda işlemez olurawkyapmak.