Nano: passa alla fine del file


37

Ho alcuni file di log lunghi. Posso visualizzare le ultime righe con tail -n 50 file.txt, ma a volte ho bisogno di modificare quelle ultime righe.

Come posso saltare direttamente alla fine di un file quando lo visualizzo con nano?


4
Prova vim:-P
Hunter.S.Thompson

5
@ Hunter.S.Thpson Questo era destinato agli utenti non hardcore (lol)
Marko Pacak

@ Hunter.S.Thpson Non funziona! Stai usando un comando definito dall'utente! Ma ora prova vimin modo portatile G
Volker Siegel

1
@VolkerSiegel Non so dire se sei sarcastico, ma non è un comando definito dall'utente. È un'emoticon. Prima usavamo queste cose prima che qualcuno facesse fumare l'erba Unicode.
NieDzejkob,

Sarcastico, ovviamente! Ho provato il tuo comando: :per aprire la riga di comando, quindi -, Ped entrare. Ecco cosa ho ottenuto: "E464: uso ambiguo del comando definito dall'utente". Ti auguro il meglio!
Volker Siegel,

Risposte:


52

Apri il file con nano file.txt.

Ora digita Ctrl+ _e poi Ctrl+V


24
Puoi anche fare Ctrl + W, Ctrl + V - a seconda di ciò che è più comodo per le tue mani :)
psmears

@psmears che dipende dalla versione. v2.4 ha le tue scorciatoie. La versione corrente v4.0 ha le scorciatoie menzionate da Marko. Molto noioso.
Mausy5043

@ Mausy5043: le versioni fino ad almeno 2.4 hanno entrambe le serie di scorciatoie. La versione 4.0 sembra aver rimosso Ctrl + W, Ctrl + V, il che è fastidioso; ha Ctrl + W, Ctrl + T, Ctrl + Y che è almeno solo sui tasti delle lettere, ma è più lungo :-(
psmears

Queste scorciatoie non funzionano molto bene in Windows / Putty
Eric Grange

22

Molti editor supportano l' opzione nella riga di comando per passare direttamente alla riga NNN . Fortunatamente per te, sembra saltare alla fine se il numero di riga indicato è oltre la fine del file, quindi potresti usare qualcosa come:+NNNnano

nano +999999 file

Funziona anche in joe, ma non in, ad esempio lesso VIM, si lamentano di aver superato EOF. (almeno quelli sul mio sistema. less +G filee vi +$ filefunzionano in quelli.)

Ovviamente qualcosa del genere $EDITOR +$(wc -l file) filefunzionerebbe probabilmente nella maggior parte degli editor, ma è un po 'sciocco e comporta la lettura del file due volte.


Oppure con nano già aperto, usa <kbd> Alt / <kbd> + <kbd> G </kbd> quindi inserisci 99999
Eric Grange

11

Dalla guida integrata di Nano ( ^G):

M-\   (^Home)   Go to the first line of the file
M-/   (^End)    Go to the last line of the file

Quindi, premi Alt + \per andare alla prima riga o premi Alt+ /per andare all'ultima riga .

  • Questo sarebbe l'equivalente di gg(inizio) o G(fine) in vim .
  • Questo indica anche che Ctrl+ Homeo Ctrl+ Enddovrebbero funzionare, manon ha mai funzionato per me sembrano funzionare in modo nativo su console / desktop ma non tramite SSH usando PuTTY.
  • Il modo in cui me lo ricordo è che /è vicino alla parte inferiore della tastiera ed \è vicino alla parte superiore.

Se vuoi un comando , puoi scrivere una funzione nel tuo .bashrco.bash_aliases usare il conteggio delle righe da wc:

function nano-end {
    # if the file exists, jump to the end
    # otherwise, just open an empty nano
    [ -f "$1" ] && nano +$(wc -l "$1") || nano
}

Ora basta digitare nano-end filenameper aprire il file all'ultima riga!


3

Ctrl+ Endfunziona, se hai una versione recente (compilata) dinano dell'editor.

Se non sai come farlo, potresti leggere editor di Nano compilante con le opzioni

Si noti che nei sistemi più recenti, ad esempio basati su Ubuntu 18.04, esiste già una tale versione.

Dal log delle modifiche :

12 aprile 2017 - GNU nano 2.8.1

... fa ^ Home e ^ End andare all'inizio e alla fine del file (sui terminali che supportano questi tasti) ...

PuTTY vs Cygwin

Non ho installato PuTTY, qui dobbiamo fare affidamento su altre affermazioni che queste combinazioni di tasti non funzionano in Windows 10 + PuTTY + SSH + nano> 2.8.1.

D'altra parte, ho Cygwin e Windows 10 + Cygwin + SSH + nano> 2.8.1 funziona bene.


@ghaberek Vedi la mia ultima modifica per i dettagli su un approccio alternativo con Cygwin, che ha dimostrato di funzionare.
LinuxSecurityFreak

2

OP vuole che io aggiunga una risposta per saltare all'ultima riga vim.

ESC+ ShiftGti porterà all'inizio dell'ultima riga.

ESC+ ShiftGAti porterà alla fine dell'ultima riga e verrà attivata la modalità di inserimento.


Se vuoi farlo in modalità insert, fallo C-o G. Non che tu voglia farlo se stavi usando Vim giusto ...
NieDzejkob

2

Per andare direttamente alla fine del file in nano, basta digitare: Alt+/


Su alcuni sistemi Alt (o Meta) è attivato dal tasto Esc: - \
Mausy5043
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.