Dosyalardan desen çıkarma


0

Bir bash betiğinde bir dosyayı kedinin içine sokmaktan desenler çıkarmaya çalışıyorum. 10 ve 80 satır satır satır çıkarmak gerekir. Bunu nasıl yaparım?

Total Branch Predictor Mispredictions: 10
Total Branch Predictor OK predictions: 80

Yanıtlar:


4
$ cat > data
Total Branch Predictor Mispredictions: 10
Total Branch Predictor OK predictions: 80
$ cat data | awk '{print $NF}'
10
80
$ cat data | awk '{printf "%s ",$NF}'
10 80 $ awk '{printf "%s ",$NF}' < data
10 80 $

awk sadece bilmez $1, $2 vb. n - sütun, aynı zamanda $NF Son sütunu ele almak için (bu durumda, 10 ve 80 ). İkinci komut kullandı printf ziyade print her şeyi bir satırda tükürmek için (sonunda eksik yeni çizgiyi izleyin) Üçüncü komut kullanmaktan kaçınır cat.

İçeren bir çözüm de var sed:

$ sed 's/^[^:]*: \([0-9]*\)/\1 /' < data
10
80

Ve sadece bir içeren bash:

$ while read line; do printf "%s " "${line##*: }"; done < data; echo
10 80 
$ 

dosya satır satır okur, yönetir line en büyük eşleşen deseni soldan silerek değişken (bu durumda: her şey : ) ve onu geçen printf, daha sonra biçimlendirmek için ilerler. ekledim echo Sonunda son bir yeni hat almak için :)


OP'nin, ilişkili performans verilerini bir satırda görmek istediği anlamına geldiğini düşünüyorum. 10 80 (birisini belirtmediğinde, nereden almak istediği konusunda yönlendirmek zor olsa da)
ppeterka

bu durumda, kullan cat data | awk '{printf "%s ",$NF}'.
Claudius

ve, kedinin işe yaramaz kullanımını önlemek için, deneyin $ awk '{printf "%s ",$NF}' < data (OP açıkça söylendiği halde kedi yavrusu ).
Claudius

Bu bitleri cevaba eklemelisin, gelecek için faydalı olacak. Süper kullanıcı adamı ...
ppeterka
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.