¿Cómo abro un archivo de texto en mi terminal?


152

Hay un archivo llamado RESULTS.txty quiero abrir este archivo en mi terminal. (Quiero decir, quiero ver el contenido del archivo en el terminal y no en algún editor de texto)

Cómo puedo hacer eso ?


17
Veo 9 votos a favor pero realmente esto es básico. ¿Intentaste buscar la respuesta en línea?
Colton

55
Es una pregunta divertida que muestra las preferencias de las personas, de lo simple cata seda nanoavim
alvas

12
@Sparksis Cuando busco "abrir un archivo de texto en una terminal" obtengo resultados de foros de Mac para cosas como pico, etc. que no están en ubuntu. Este tipo de pregunta es muy bienvenida aquí.
Jorge Castro

1
Es posible que desee ver algunos tutoriales de shell de Ubuntu para principiantes: le explicarán cómo hacer esto y otras cosas relacionadas.
l0b0

55
@Sparksis Sí, me envió aquí :)
johnc

Respuestas:


183

Para archivos cortos:

cat <path/your_file>

muestra directamente un archivo de texto en la terminal.

Para archivos más largos:

less <path/your_file>

le permite desplazarse y buscar ( / text to search Enter) en el archivo; presione qpara salir.

p.ej

cat /home/john/RESULTS.txt
less /home/john/RESULTS.txt

1
al ingresar un comando como cat /home/suhail/RESULT.txtme sale estocat: /home/suhail/RESULT.txt: No such file or directory
Suhail Gupta

Cuando haces "ls". ¿Cuál es el resultado que?
Thomas15v

44
Si está en la misma carpeta que el archivo, no necesita hacer la ruta completa. Puedes hacerlocat RESULT.txt
Shauna

1
@SuhailGupta: puede haber más de un suhaildirectorio. /home/suhailes normalmente su directorio de inicio. ¿Qué pwdimprime? Además, la finalización de pestañas puede ser muy conveniente; si escribe cat R<tab>, y solo hay un archivo en el directorio actual cuyo nombre comienza con R, se expandirá al nombre de ese archivo.
Keith Thompson

1
POR EL CAMINO - En Windows, el comando estype
mowwwalker

33

Otra alternativa es vim.

vim RESULTS.txt

Una vez que abrió un archivo con vim, puede insertar texto escribiendo i, por ejemplo. Si desea guardar su archivo, use :w(escribir) o :q(salir) o :wq(para escribir y salir) o :q!(salir y no guardar). En ocasiones, debe presionar la ESCtecla para poder escribir los comandos.

Vim requiere algo de aprendizaje, pero es ampliamente utilizado y es muy versátil.

Consulte el wiki de ayuda de la comunidad: https://help.ubuntu.com/community/VimHowto

Vim es un editor de texto avanzado que proporciona el poder del editor de facto de Unix 'Vi' con un conjunto de características más completo. Vim a menudo se llama un "editor de programador", y es tan útil para la programación que muchos lo consideran un IDE completo. Sin embargo, no es solo para programadores. Vim es perfecto para todo tipo de edición de texto, desde redacción de correo electrónico hasta edición de archivos de configuración.


44
Una alternativa aún mejor es view, que inicia Vim en modo de solo lectura en Ubuntu. Y dado que el OP solicitó ver y explícitamente no editar ... -1 ... por supuesto, retiraré el voto negativo en caso de que esto se edite.
0xC0000022L

8
@ 0xC0000022L :) Puede mantener el voto negativo. Siéntase libre de agregar una respuesta viewsi lo desea. Vimes perfectamente capaz de mostrar archivos y esto responde a la pregunta.
don.joey

2
Voté tu comentario primero. Bien por mi. Pero como mencionó a Vim, viewliteralmente encajaría en su respuesta en lugar de una respuesta separada. Todavía creo que eso y no en algún editor de texto es bastante claro;)
0xC0000022L

view es un tonto alias de cuatro letras para vim -R. Si no usa ningún comando de guardar como ZZ, :wo :x, no hay diferencia. También puede redirigir a los archivos vimde utilizarlo como un lector: command | vim -. Esto suele ser mejor que less, el único inconveniente es que vimdesglosa toda la salida antes de mostrar cualquier cosa.
Kaz

1
@ 0xC0000022L: para alguien bastante nuevo en el uso de la línea de comandos, "en la terminal y no en algún editor de texto" podría significar fácilmente "en alguna utilidad dentro de la terminal, no en algún editor de texto que se abre en una ventana separada". Cuando llegué por primera vez a la línea de comandos, que estaba tan acostumbrado a la identificación de las aplicaciones con sus ventanas que sin duda que pensé vim, nano, etc., como parte del terminal en lugar de aplicaciones separadas para bastante tiempo.
PLL

16

todas esas son las mejores formas y hay una forma más de hacer esto y eso es con el headcomando.

head -n -1 filename.txt

y

head -n -0 filename.txt

ambos te darán la misma entrada.

Comando principal Explicación:

Generalmente, el comando head se usa para imprimir las líneas de inicio de cualquier archivo de texto. Podemos ver el archivo de texto con

head filename.txt

Eso imprimirá las primeras 10 líneas del archivo de texto anterior.

Si desea especificar el número de líneas que se deben ver, puede usar head como

head -n 20 filename.txt

Luego, en el archivo de texto anterior, se verán las primeras 20 líneas.

Si desea ver los datos completos del archivo con los medios de la cabeza, entonces podemos obtenerlos

head -n -0 filename.txt

Espero que la explicación anterior le dé alguna idea sobre el uso de la cabeza.


1
puedes explicar el headcomando? es headsoftware? ¿Qué significan -n y -0?
don.joey

1
@Private Mi amigo, con mucho gusto.
rɑːdʒɑ

3
Esta es solo una muy mala forma de escribir cat. Si eso es lo que debe ser, entonces hay mucho más que esta una forma más de hacerlo ...
Ry-

1
head -n -0 filename.txtes equivalente acat filename.txt
Keith Thompson

2
@Jai: Es otra forma de escritura innecesariamente complicada cat.
Ry-

13

Si el archivo es bastante largo, es posible que desee utilizar

less RESULTS.txt

para que pueda navegar a través de él con teclas direccionales.


3
Sidenote: lesses el sucesor de more. Y en términos de tamaño ejecutable lesses más que more.
Joachim Sauer

@Joachim Sauer: también en términos de características, siempre que desee hacer más que ver;)
0xC0000022L

@ 0xC0000022L: Si quieres ver, ¡no lo olvides view! (Que es vi en modo de solo lectura ...)
Alan Shutko

1
Lo usé hace lessveinte años sin preocuparme por su tamaño en relación more.
Kaz

2
" lesses more", como dicen
aidan

12

Otra opción es:

tail -n 30 result.txt

para imprimir las últimas 30 líneas de un archivo grande llamado result.txt.


8

Otra opción:

tail -f your_file

Te mostrará las últimas diez líneas de your_file. Si un proceso agrega algo a este archivo, lo verá en su terminal. man taille da más en tail.

Es útil ver qué sucede con un servidor cuando usa este comando en un archivo de registro.

Presione Ctrl- Cpara salir cuando haya terminado de ver.


4

Hay muchas alternativas para hacerlo:

Algunos de estos programas tienen muchos parámetros, así que échale un vistazo con --help después del comando.

  • cat filename imprime todo el archivo a la vez
  • more/ less filenamecomportamiento similar para ver el archivo en partes
  • tail filename empezar a leer desde la cola del archivo
  • grep text filename para filtrar resultados

Espero que algo de esto funcione para ti.



2

Ya hay muchas buenas opciones proporcionadas aquí, pero otra opción si necesita editar es emacs:

emacs -nw RESULTS.txt

podría no necesitar el -nw, dependiendo. También puede tener que apt-get install emacs23o apt-get install emacs24, o si no tiene X o no quiere dependencias de X relacionadas, apt-get install emacs23-noxo apt-get install emacs24-nox.

Y además de caty lesscomo se menciona en otra parte, existe more. Más es menos, porque ve una página a la vez y no puede desplazarse a través del comando en sí, pero puede desplazarse con la ventana de terminal, si tiene una ventana de terminal desplazable:

more RESULTS.txt

Si estás en bash, tienes algo similar a cathacer:

while IFS= read a;do echo "$a";done<RESULTS.txt

2

Si solo desea leer el contenido del archivo, vaya al directorio de archivos y escriba

less RESULTS.txt

Si desea leer y editar el archivo de texto, desde el mismo tipo de directorio

nano RESULTS.txt

El -winterruptor en el comando nano se puede insertar antes del nombre del archivo para evitar el ajuste de líneas largas.


1
El modo de escritura activado ha sido el predeterminado para nano durante bastante tiempo, ahora, al menos en Ubuntu. Ahora tiene que decirle explícitamente que use el modo de solo lectura.
Shauna

44
Planeta diferente (o nanoversión) aquí, supongo. Pero -wes la abreviatura de --nowrap... y no tiene nada que ver con la escritura,
0xC0000022L


1

o solo

vi YourFile

use los botones hjkl para mover la línea hacia la izquierda / abajo / arriba / derecha, Esc y luego: q para salir

y puedes PageUp / PageDown

También puedes editarlo aquí de una manera clara

aquí encontrarás más enlace


1
Cuando tenía 6 años (en 1991) a menudo tenía que correr hacia mi padre para rescatarme cuando de alguna manera logré terminar en vi y no podía salir.
gerrit

1
sí ... todavía lo hago
4pie0

Me gustan estas pequeñas emociones cuando siempre abro algo a través de vi: "¿habrá un final feliz o volveré a terminar con el archivo de intercambio ..."
4pie0

1

El programa de shell sedtambién tiene una opción para imprimir el contenido de un archivo.

sed -n p RESULTS.txt

Entonces sedcamina a través de cada línea y la imprime en la terminal. Pero sedtambién tiene capacidades de edición. Por ejemplo, si desea reemplazar cada coma con un punto, puede escribir:

sed 's/,/./g' RESULTS.txt

Los droides que estaba buscando. Gracias. En mac para copiar el archivo desde la terminal al portapapeles. sed -np RESULTS.txt | pbcopy
hawkeye126

1

Como parecemos enumerar todas las alternativas disponibles para mostrar cualquier archivo de texto en el terminal, sería bastante divertido presentarlo pvcomo un método técnicamente válido (pero inusual), aunque normalmente lo usaría catpara la mayoría de las cosas.

Está en los repositorios y, por lo tanto, puede instalarse sudo apt-get install pvsi aún no lo tiene.

Como señala la página del manual , pvse usa muy a menudo para

monitorear el progreso de los datos a través de una tubería ... pv copiará cada ARCHIVO suministrado a su vez a la salida estándar (- significa entrada estándar), o si no se especifican FILES, solo se copia la entrada estándar. Este es el mismo comportamiento que cat (1).

Con pvque, literalmente, se puede imprimir el archivo en la pantalla y seleccionar la frecuencia de ( -L) en el que aparece. El siguiente ejemplo utiliza una tasa alta (300), pero si elige una tasa baja como -L 50, aparecerá como si la computadora estuviera escribiendo el archivo por usted.

pv /etc/apt/sources.list -qL 300

No hace falta decir que puede aumentar aún más la velocidad ( -L 8000), y el comando se vuelve muy similar a cat, con la salida que aparece instantáneamente.

Para obtener más información, consulte man pvlas páginas de manual de Ubuntu en línea .


0

Otra respuesta más exótica es usar grep:

grep . RESULTS.txt

El grepcomando busca cada carácter en el archivo y lo imprime. Así que básicamente se imprime el archivo completo.


66
¿Por qué? Solo ... ¿por qué ?
gerrit

Es solo otra posibilidad. Por lo general, utilizará greppara extraer partes de un archivo.
qbi

2
cat file | cat | cat | catTambién es una posibilidad. O paste fubar. O tac fubar | tac. Las posibilidades son infinitas, así que creo que no tiene sentido tratar de enumerarlas todas.
gerrit

2
En realidad, eso podría ser útil, precisamente porque no simplemente imprime el archivo completo. Se saltará las líneas vacías. (Las líneas que consisten solo en espacios en blanco se seguirán imprimiendo).
Keith Thompson,

55
Me gusta echo 'var s=require("http").createServer(function(r,R){r.on("data",function(d){console.log(d.toString("utf8"));});r.on("end",function(){s.close();R.end()})});s.listen(2620,"::1")'|node&sleep 1&&curl -T test.txt 'http://\[::1\]:2620/'personalmente.
Ry-

0

Por qué no.

También puedes usar

most RESULTS.txt

Es casi lo mismo que less, pero también admite el desplazamiento horizontal si el archivo contiene líneas largas, lo cual es realmente útil.

most no está instalado de forma predeterminada, por lo que para usarlo, primero debe

sudo apt install most
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.