He visto el comando cat aparecer en algunas cosas en línea y tenía curiosidad por saber qué cat
hizo y para qué sirve en el contexto de alguien que solo está haciendo algunas cosas simples de la línea de comandos.
fuente
He visto el comando cat aparecer en algunas cosas en línea y tenía curiosidad por saber qué cat
hizo y para qué sirve en el contexto de alguien que solo está haciendo algunas cosas simples de la línea de comandos.
cat
's objetivo principal es con gato archivos Enate. cat file1 file2 ...
mostrará los contenidos de file
, file2
y los otros uno tras otro, como si los contenidos estuvieran en un solo archivo. Ver la página de manual :
NAME
cat - concatenate and print files
Está destinado para el uso donde:
un comando de destino no puede leer archivos y debe pasarle varios archivos. Un ejemplo es la tr
utilidad. Por lo general, con un archivo, haría:
tr < file
Pero con varios archivos, la redirección no se puede usar, por lo que debe hacer lo siguiente:
cat file1 file2 ... | tr
wc
, que imprime los recuentos de cada archivo, junto con los nombres de los archivos, donde podría haber deseado solo el total, sin un nombre de archivo.Recuerde que la mayoría de los comandos que encuentro ( grep
, sed
, awk
, sort
, ...) puede leer archivos perfectamente bien.
Si desea ver el contenido de un archivo, use un buscapersonas , less
y more
ambos son muy capaces de presentar archivos para su visualización, y son mucho más convenientes de usar.
< <(cat file[12]) tr
así como también<<<$(cat file[12]) tr
son formas perfectamente válidas para redirigir múltiples archivos. Por supuesto, también necesitacat
eso, solo que las tuberías no son la única forma.cat
es uno de los comandos más utilizados en sistemas operativos tipo Unix. Tiene tres funciones relacionadas con los archivos de texto:La sintaxis general de cat es:
Lectura de archivos
El uso más común de cat es leer el contenido de los archivos, y cat es a menudo el programa más conveniente para este propósito. Todo lo que se necesita para abrir un archivo de texto para ver en el monitor es escribir la palabra gato seguida de un espacio y el nombre del archivo y luego presionar la tecla ENTER. Por ejemplo, lo siguiente mostrará el contenido de un archivo llamado archivo1:
Concatenación
El segundo papel del gato es la concatenación. (Esta es la fuente del curioso nombre del gato). No hay ningún efecto en los archivos originales.
Por ejemplo, el siguiente comando concatenará copias de los contenidos de los tres archivos archivo1, archivo2 y archivo3:
El contenido de cada archivo se mostrará en la pantalla del monitor. Esta salida podría redirigirse fácilmente con el operador de redirección de salida a otro archivo, como el archivo 4, usando lo siguiente:
Creación de archivos
Gracias al comentario de @muru : cat es capaz de crear nuevos archivos dependiendo de la función de redirección de shell y no de sí mismo
Para archivos pequeños, esto es a menudo más fácil que usar vi, gedit u otros editores de texto. Se logra escribiendo cat seguido por el operador de redirección de salida y el nombre del archivo que se creará, luego presionando ENTERy finalmente presionando simultáneamente las teclas Ctrl& d.
Por ejemplo, un nuevo archivo llamado archivo1 se puede crear escribiendo
luego presione ENTERy simultáneamente presione las teclas Ctrl& d.
PS1: si ya existe un archivo llamado archivo1, se sobrescribirá
PS2: puede agregar al archivo salido utilizando el operador de agregar
>>
ejemplo cat >> file1Copiar archivos
El comando cat también se puede usar ( según la función de redirección de shell) para crear un nuevo archivo y transferirle los datos de un archivo existente. Ejemplo: hacer una copia del archivo
oldfile.txt
:Referencias
fuente
cat
no está creando esos archivos, el shell es cuando usaste la redirección. Es posible que lo hayas hecho bienecho foo > file1
.cat
lo que realmente está haciendo otra cosa. Por ejemplo, hacerless file1 > file2
(ogrep '.*' file1 > file
oawk 1 file1 > file2
o ...) tiene el mismo efecto. Lo mismo para 4. Estos son solo malos usos.> file
y dar el mismo resultado, pero ¿no puedo considerar válido hacerlo con cat?cat
no se está creando el archivo. Decir quecat
crea o copia el archivo es simplemente falso.Se puede usar para mostrar el contenido de un archivo. Por ejemplo:
cat "my file.txt"
. También puede hacerman cat
para mostrarle los detalles sobre para quécat
se puede utilizar.fuente
Aquí hay otra forma de creación de archivos mediante redirección de shell (o canalización) y
cat
:cat << EOF
mostrará las siguientes líneas hasta que la cadenaEOF
se encuentre nuevamente. Luego>
(>>
) redirigirá la salida al archivofoo.sh
. Alternativamente, si necesita crear un archivo como root, puede canalizar la salida al comandotee
(tee -a
), ejecutado por el comandosudo
:chmod +x
) si se creó con éxito (&&
).$
) debe escaparse (con\
) dentro de la salida decat
.fuente