Bir komut lessdosyası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 lesskontrolü 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 -FXdosya konsolun daha az çizgiler varsa tespit edip kaydırma yapmadan konsola tüm metin yazdırmak ve -Eçıkmak için lessmetin olduğunda durumlar için, ben dosyanın sonuna geldim zaman Konsoldan daha uzun ve kaydırma yapmam gerekiyor.
Bunlar -peş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] $
-pDüğmeyi kullanmanın herhangi bir yolu var mı ve kullanırken bu boş satırları göstermemesi gerekiyor -Fmu? (Not: "ccc" satırı istenildiği şekilde vurgulanır, bu istenmeyen yan etkiye sahibim.)
Benim kabuğum bash 3.2.25ve daha az versiyonum 436. İşletim sistemi RHEL'dir.
grep --color=always -E "^|$2" "$1"|less -SFXERburada $1dosya adı ve $2arama ş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 -pilk eşleşmeden önceki satırları atlar: Bunu yapmak için kullanmanız gerekir sed.
-psadece desenleri araştırıp vurgulamakla kalmıyor, imleci ilk eşleşmeye de getiriyor. İmleç hareket eden kısmının,lessbu boş satırları göstermeye neden olan şey olduğunu düşünüyorum . İmleci hareket ettirmeden vurgulamayı almanın bir yolu var mı?