Tengo una entrada (digamos un archivo). En cada línea hay un nombre de archivo. ¿Cómo puedo leer este archivo y mostrar el contenido de cada uno?
158
Algo como esto haría:
xargs cat <filenames.txt
El xargs
programa lee su entrada estándar, y para cada línea de entrada ejecuta el cat
programa con las líneas de entrada como argumento (s).
Si realmente quieres hacer esto en un bucle, puedes:
for fn in `cat filenames.txt`; do
echo "the next file is $fn"
cat $fn
done
"foreach" no es el nombre de bash. Es simplemente "para". Puedes hacer cosas en una sola línea como:
Referencia: http://www.cyberciti.biz/faq/linux-unix-bash-for-loop-one-line-command/
fuente
Aquí hay un
while
bucle:fuente
read
Esto generará el nombre del archivo seguido del contenido del archivo:
fuente
Probablemente quiera manejar espacios en los nombres de sus archivos, aunque sean abominables :-)
Entonces, inicialmente optaría por algo como:
fuente
hará el truco
fuente
Si todos tienen la misma extensión (por ejemplo .jpg), puede usar esto:
(Esta solución también funciona si el nombre de archivo tiene espacios)
fuente