Geçerli içeriği daha az olan bir dosyaya nasıl kaydederim?


91

Bir komutun sonuçlarını yayınladıysam ve lessiçeriğini bir dosyaya kaydetmek istediğime karar verirsem, bu mümkün mü?

aTamponun sonuna bir işaret koymaya çalıştım , sonra en başa dönüp |avitüm içeriği göndermek için kullanmaya çalıştım vi, ancak bu işe yaramadı.


1
Orijinal tekniğiniz vi'ye stdin'den yükleme yapmanız talimatını verirseniz işe yarar |avi -.
Joe Shaw,

Yanıtlar:


102

Benim sistemimde man lessdiyor

       s dosya adı
              Girişi bir dosyaya kaydedin. Bu sadece giriş bir
              boru, sıradan bir dosya değil.

Benim için çalışıyor!


4
Her nasılsa, bu benim için işe yaramıyor - 's' yazması pencereyi bir satır ilerletiyor. Mac'tayım.
benroth

2
@ benroth: Muhtemelen lesskeynormal komutları değiştiren bir dosyanız var. Bakınızman lesskey
RedGrittyBrick

8
sbenim için de -o fileçalışmıyor , ama çalışıyor .
user1338062

1
Ve etkileşimli yardım almak için 'h' yazdığımda neden dünyada bu belirtilmiyor? +1 etkileşimli yardımı okuduysanız ve bu nedenle de danışmayı düşünmüyorsanız man less...
Peter V. Mørch

1
@ comfreak: Evet, Ubuntu 18.04'te 487'den az, ancak Debian 9'da 481'den az değil / streç / ahır
Peter V. Mørch

24

Kabul edilen cevap Mac'te çalışmaz - @ benroth'un dediği gibi, basmak sbir satır aşağı ilerler - ancak farklı bir yöntem kullanabilirsiniz.

İçinde less --help:

|Xcommand            Pipe file between current pos & mark X to shell command.

ve

A mark is any upper-case or lower-case letter.
Certain marks are predefined:
     ^  means  beginning of the file
     $  means  end of the file

Eğer tamponun tepesine ( <) gidersen ve sonra:

|$cat > /tmp/foo.txt

Tamponun içeriği için yazılacaktır /tmp/foo.txt.


Bu yöntem, başka bir komut aracılığıyla görüntülenen mevcut tamponu yayınlamak istediğinizde özellikle yararlı olabilir.
Doron Behar

3

Sizin lessaçıldığında, çıktının tamamını bir dosyaya kaydedebilirsiniz. Gibi vim, daha az komutları destekler.

Sadece anahtarı yazın s, ardından lesssize içeriği kaydetmek istediğiniz dosyanın adını soracak, sadece dosya adını yazıp yazınız Enter.

Şerefe


0

>Operatörü kullanın . Örneğin: less foo.bar > output.txt.


Thanks @Dror, ama ben zaten daha az başvuruda, artık bash isteminde değil
Jonathan Day

Q / A'ya değerli bir katkı. Tamamen ayrı bir soru başlatmak yerine, Less Viewer aracılığıyla birden fazla dosyayı komut dosyası yazmak için bir yönteme ihtiyaç duyan insanlar çok yarar sağlayabilir. Beni saatler süren çalışmadan kurtardı (birçok aramadan sonra). Teşekkürler!
LD James,

0

Hayır, daha az başladıysanız, ama daha önce siz daha azına ve bir dosyaya göndermek istediğinizi biliyorsanız, tee komutunu kullanabilirsiniz.

command | tee out_file | less

Teşekkürler Mark, ama ben zaten daha
Jonathan Day

0

Cevabım biraz geç geldiğine inanıyorum. Ancak sadece referans olarak, yukarıdaki benroth'un endişesine cevap olarak: OSX kullanıcıları için her zaman çağrı çubuğunda "-l" ( DASH ELL'yi oku ) seçeneğini kullanarak çağrı cihazının içeriğini bir günlük dosyasına atma seçeneği vardır .

Çağrı cihazı bir günlük dosyası isteyecektir. Anahtarla ve [CR] tuşuna basın

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.