
Necesito escribir un script de shell para leer un archivo de texto y realizar operaciones en él para contar todas las palabras distintas en el archivo de texto.
Tengo todos los comandos necesarios para realizar estas operaciones, pero ¿cómo haría para ingresar el archivo de texto en el script de shell para luego usarlo con los comandos?
entonces, el comando que uso es este: ¿cómo haría para tener text.txt como variable para poder llamar a la variable en el script?
tr '[A-Z]' '[a-z]' < text.txt
Respuesta1
Puedes usar simplessustitución de comando:
variable=`cat text.txt`
echo $variable
O en fiesta:
variable=$(cat text.txt)
Lo mismo con:
variable=`tr '[A-Z]' '[a-z]' < text.txt`
Respuesta2
Herramientas como tr y wc pueden operar con archivos; tu notenerpara pasar cadenas a su entrada estándar. Para responder tu pregunta:
¿Cómo haría para tener el text.txt como variable para poder llamar a la variable en el script?
La sintaxis para eso es:
input=text.txt # or other file name
tr '[A-Z]' '[a-z]' $input
Respuesta3
Archivo de ejemplo
foo
bar
foo bar
foobar f0o b@rred
Generado a través de
echo -e 'foo\n\t\tbar\n foo bar\nfoobar f0o b@arred' | tee -a /tmp/foo.bar
Continencia de archivos en la variable bash (taquigrafíapara $(cat file)
)
v="$(</tmp/foo.bar)"
Utilice la variable como entrada (sin caracteres no imprimibles) para otro comando
sed 's#@#a#; s@0@o@' <<<"${v//[![[:print:]]]}" | tail -1
Debería generar la última línea, reemplazando @
con a
y 0
cono
foobar foo barred
También es mi deseo investigar mkfifo
... mucha suerte con el análisis de text.txt.