Bir komut less
dosyasından bir dosyayı çağırmak ve çıktısını yeni bir ekran yerine konsola yazdırmasını istiyorum . Dosya bir ekrana sığacak kadar kısaysa, kaydırmayı devre dışı bırakmak istiyorum. Birden fazla ekran varsa, içinde kaydırma yapmak istiyorum, ancak dibe vurduğumda less
kontrolü konsola geri döndürmek istiyorum . Satırlar da doğranmış olmalıdır (bu durumda konsol penceresinden geçen dizelerin sonunu kaybetmek iyidir).
Ayrıca belirli bir deseni vurgulamasını istiyorum.
İşte bağımsız değişkenler için kullanıyorum:
less -SFXE -p "ccc" fileToShow.txt
Kullandığım -S
, uzun satırları kesmek için -FX
dosya konsolun daha az çizgiler varsa tespit edip kaydırma yapmadan konsola tüm metin yazdırmak ve -E
çıkmak için less
metin olduğunda durumlar için, ben dosyanın sonuna geldim zaman Konsoldan daha uzun ve kaydırma yapmam gerekiyor.
Bunlar -p
eşleşmeleri vurgulamak için anahtar ekleyene kadar iyi çalışır .
FileToShow.txt dosyasının şunu içerdiğini varsayalım:
aaa
bbb
ccc
ddd
eee
Desen anahtarı olmadan şunu anlıyorum:
[evan@localhost] $ less -SFXE fileToShow.txt
aaa
bbb
ccc
ddd
eee
[evan@localhost] $
Desen eşleştirmesini eklediğimde, daha az boş satırları konsol yüksekliğine kadar yazdırır (boş satırları göstermek için tilde kullanarak).
[evan@localhost] $ less -SFXE -p "ccc" fileToShow.txt
ccc
ddd
eee
~
~
~
~
~
~
~
~
[evan@localhost] $
-p
Düğmeyi kullanmanın herhangi bir yolu var mı ve kullanırken bu boş satırları göstermemesi gerekiyor -F
mu? (Not: "ccc" satırı istenildiği şekilde vurgulanır, bu istenmeyen yan etkiye sahibim.)
Benim kabuğum bash 3.2.25
ve daha az versiyonum 436
. İşletim sistemi RHEL'dir.
grep --color=always -E "^|$2" "$1"|less -SFXER
burada $1
dosya adı ve $2
arama şeklidir. Tam olarak düzgün değil, ama bir tür cevap. Bunun, deseni vurgulayarak tüm satırları listeleyeceğini unutmayın; oysa less -p
ilk eşleşmeden önceki satırları atlar: Bunu yapmak için kullanmanız gerekir sed
.
-p
sadece desenleri araştırıp vurgulamakla kalmıyor, imleci ilk eşleşmeye de getiriyor. İmleç hareket eden kısmının,less
bu boş satırları göstermeye neden olan şey olduğunu düşünüyorum . İmleci hareket ettirmeden vurgulamayı almanın bir yolu var mı?