Me gustaría mostrar el contenido de un archivo de texto en la línea de comando. El archivo solo contiene 5-6 caracteres. ¿Hay una forma fácil de hacer esto?
Me gustaría mostrar el contenido de un archivo de texto en la línea de comando. El archivo solo contiene 5-6 caracteres. ¿Hay una forma fácil de hacer esto?
Respuestas:
cat
Como su archivo es corto, puede usarlo
cat
.
cat filename
less
Si tiene que ver el contenido de un archivo más largo, puede usar un localizador como
less
.
less filename
Puede hacer que se less
comporte como cat
cuando se invoca en archivos pequeños y que se comporte normalmente de lo contrario al pasarle las banderas -F
y -X
.
less -FX filename
Tengo un alias para less -FX
. Puedes hacer uno tú mismo así:
alias aliasname='less -FX'
Si agrega el alias a su configuración de shell , puede usarlo para siempre.
od
Si su archivo contiene caracteres extraños o no imprimibles, puede usar
od
para examinar los caracteres. Por ejemplo,
$ cat file
(ÐZ4 ?o=÷jï
$ od -c test
0000000 202 233 ( 320 K j 357 024 J 017 h Z 4 240 ? o
0000020 = 367 \n
0000023
less
Tiene alguna ventaja clara sobre otros programas de buscapersonas pg
o simplemente se reduce a preferencias personales?
less
tiene más funciones que pg
. Echar un vistazo a la less(1)
y pg(1)
páginas de manual. También hay otros buscapersonas. Echa un vistazo a unix.stackexchange.com/questions/81129/… . less
es probablemente el buscapersonas más utilizado, pero el que usa se reduce a preferencias personales.
more
y most
!
A pesar de que todo el mundo usa cat filename
para imprimir un texto archivos a la salida estándar de primer propósito es CON gato enating. De la página del manual del gato:
cat: concatena archivos e imprime en la salida estándar
Ahora cat está bien para imprimir archivos, pero hay alternativas:
echo "$(<filename)"
or
printf "%s" "$(<filename)"
El ( )
devolver el valor de una expresión, en este caso el contenido de nombre de archivo que luego es expandido en $
para echo
o printf
.
Actualizar:
< filename
Esto hace exactamente lo que quieres y es fácil de recordar.
Aquí hay un ejemplo que le permite seleccionar un archivo en un menú y luego imprimirlo.
#!/bin/bash
select fname in *;
do
# Don't forget the "" around the second part, else newlines won't be printed
printf "%s" "$(<$fname)"
break
done
Para más información:
BashPitfalls - archivo cat | sed s / foo / bar /> referencia de archivo
Bash - Redireccionamiento
< filename
es exactamente lo que quiere, ..." es engañosa. En general, aunque esta es una discusión interesante sobre alternativas, creo que cat
es más simple.
< filename
no muestra el contenido del archivo, pero cat filename
sí.
tee < filename
.
echo "$(<filename)"
bashismo. No hay suficiente de eso aquí.
"$(<filename)"
. Gracias ...
Las herramientas para manejar archivos de texto en Unix son comandos básicos y cotidianos:
En Unix y Linux para imprimir todo el contenido en el archivo
cat filename.txt
o
more filename.txt
o
less filename.txt
Para las últimas líneas
tail filename.txt
Para las primeras líneas
head filename.txt
Una opción es usar more
p.ej more file.txt
Sin embargo, no tiene todas las características agregadas por less
.
Un ejemplo simple es que no puede desplazarse hacia atrás en la salida. En general, ha sido superado por less, que se nombró en broma porque
menos es más
Siempre uso $ less "your file here"
, ya que es muy simple, proporciona un grep
comando interactivo incorporado y le brinda una interfaz fácil de usar que puede desplazar con las teclas de flecha.
(También se incluye en casi todos los sistemas * nix)
less
es la versión exagerada de more
(comparar man less
con man more
), y para mí tiene dos características molestas: 1) cambia al búfer de pantalla alternativo, cuando menos termina, el archivo que estaba viendo desaparece 2) en EOF debe escribir explícitamente q
(Lo sé, hay una opción para esto). Entonces, una de mis primeras acciones en un nuevo entorno es establecer export PAGER=/bin/more
en mi perfil y usar more
todo el tiempo.
-X
bandera. 2) Prueba la -E
bandera. less
Tiene un more
modo de emulación. Puede habilitarlo configurando la LESS_IS_MORE
variable ambiental. Puede desplazarse hacia arriba en el more
modo de emulación.
less
es demasiado complicado. Su capacidad para ejecutar comandos externos es un ejemplo perfecto de su excesiva complejidad.
more
y sus muchas características adicionales, hace el trabajo muy bien.
Si es un archivo grande y desea buscar alguna parte específica, puede usar
cat filename | grep text_to_search -ni
También puede usar un editor Vim más interactivo (o editor vi si no tiene Vim):
vim filename
Or
vi filename
Vim / vi es un gran editor, también se puede usar como lector en "Modo Normal" o usando la opción -R, tiene muchas características que lo ayudarán a navegar a través del archivo.
vim -R
es view
. Pero tenga en cuenta que no le gustan las redirecciones, como se discutió en xargs y vi - "La entrada no es desde un terminal" .
Use el comando cat para mostrar el contenido del nombre del archivo. nombre de archivo del gato
Use el comando vim para editar el archivo. nombre de archivo vim
sed -n l file
podría ser útil.