Me gustaría mostrar el contenido de un archivo de texto en la línea de comando. El archivo solo contiene 5-6 caracteres. ¿Existe una manera fácil de hacer esto?
Responder
Usando cat
Dado que su archivo es corto, puede usar cat
.
cat filename
Usando less
Si tiene que ver el contenido de un archivo más largo, puede usar un localizador como less
.
less filename
Puede hacer que less
se comporte como cat
cuando se invoca en archivos pequeños y se comporte normalmente de otra manera pasándole el -F
y -X
banderas.
less -FX filename
Tengo un alias para less -FX
. Puede hacer uno usted mismo así:
alias aliasname="less -FX"
Si agrega el alias a su configuración de shell , puede usarlo para siempre.
Usando 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
Comentarios
Responder
Aunque todos usan cat filename
para imprimir el texto de un archivo en la salida estándar, el primer propósito es con gato enating. Desde la página de manual de cat:
cat – concatenar archivos e imprimir en la salida estándar
Ahora cat está bien para imprimir archivos, pero hay alternativas:
echo "$(<filename)" or printf "%s" "$(<filename)"
El ( )
return el valor de una expresión, en este caso el contenido de nombre de archivo que luego se expande en $
para echo
o printf
.
Actualización:
< filename
Esto hace exactamente lo que quiere 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 leyendo:
BashPitfalls – archivo cat | sed s / foo / bar /> archivo
Referencia de Bash: redireccionamiento
Comentarios
- Tu actualización: »
< filename
es exactamente lo que como quieras, … » es engañoso. En general, aunque esta es una discusión interesante sobre alternativas, creo quecat
es más simple. - Bare
< filename
no mostrar el contenido del archivo, perocat filename
lo hace. - También podría usar
tee < filename
. - +1 para el
echo "$(<filename)"
bashism. No hay suficiente de eso aquí. - Esa ‘ es una gran idea para usar el comando interno de Linux con echo
"$(<filename)"
. Gracias …
Respuesta
Las herramientas para manejar archivos de texto en Unix son comandos básicos y cotidianos:
En Unix y Linux para imprimir el contenido completo en un archivo
cat filename.txt
o
more filename.txt
o
less filename.txt
Para las últimas líneas
tail filename.txt
Para primeras líneas
head filename.txt
Responder
Puede utilizar el siguiente comando para mostrar contenido de un archivo de texto.
cat filename
Comentarios
- Para obtener más información acerca de
cat
, ejecuteman cat
.
Responder
Una opción es usar more
p. ej.more file.txt
Sin embargo, no tiene todas las funciones agregadas por less
.
Un ejemplo simple es que no puede desplazarse hacia arriba en la salida. Generalmente ha sido reemplazado por menos – que fue nombrado en broma porque
menos es más
Comentarios
- Buena explicación de por qué menos era el nombre
Respuesta
Siempre uso $ less "your file here"
, ya que es muy simple, proporciona un grep
comando, y le brinda una interfaz fácil de usar que puede desplazarse con las teclas de flecha.
(También se incluye en casi todos los sistemas * nix)
Comentarios
-
less
es la versión overkill demore
(compareman less
conman 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ícitamenteq
(lo sé, hay ‘ es una opción para esto). Entonces, una de mis primeras acciones en un nuevo entorno es configurarexport PAGER=/bin/more
en mi perfil y usarmore
todo el tiempo. - @ ott–: 1) Pruebe el indicador
-X
. 2) Pruebe el indicador-E
.less
tiene un modo de emulaciónmore
. Puede habilitarlo configurando la variable de entornoLESS_IS_MORE
. Puede desplazarse hacia arriba en elmore
modo de emulación. - Consulte también: unix.stackexchange.com/questions / 81129 / …
- Aunque, en general, estoy de acuerdo en que
less
es demasiado Complicado. Su capacidad para ejecutar comandos externos es un ejemplo perfecto de su complejidad excesiva. - @EvanTeitelman Yo ‘ siempre encontré la funcionalidad grep extremadamente útil, @ott – Encuentro que debido a la ‘ s emulación de
more
, y ‘ Tiene muchas funciones adicionales, funciona muy bien.
Respuesta
Si es un archivo grande, y Si 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 un 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á a navegar a través del archivo.
Comentarios
- La abreviatura de
vim -R
esview
. Pero tenga en cuenta que no le gustan las redirecciones, como se explica en xargs y vi – «La entrada no es de una terminal» . - gracias @manatwork para el heads up! Recientemente comencé a usar Vim y me gusta por sus varias características. Con respecto a las redirecciones, me olvidé de eso, gracias por el recordatorio. A partir de ahora, estoy trabajando en una máquina virtual remota, donde uso ssh sin interfaz GUI, por lo tanto, Vim es de gran utilidad, cuando cualquier otro editor GUI no puede funcionar, ‘ s por qué enfaticé Vim aquí.
Respuesta
Use el comando cat para mostrar el contenido del nombre del archivo. cat nombre de archivo
Utilice el comando vim para editar el archivo. nombre de archivo vim
sed -n l file
podría ser útil.less
alguna ventaja clara sobre otros programas de buscapersonas comopg
, ¿o simplemente se reduce a preferencias personales?less
tiene más características quepg
. Eche un vistazo a lasless(1)
ypg(1)
. También hay otros buscapersonas. Eche un vistazo a unix.stackexchange.com/questions/81129/… .less
es probablemente el buscapersonas más utilizado, pero el que uses depende de tus preferencias personales.more
ymost
!