Usar texto en otro archivo para un comando

Usar texto en otro archivo para un comando

Estoy tratando de encontrar un método de trabajo para extraer datos de un archivo y generarlos en el formato correcto.

Digamos que tengo un archivo llamado data.txt y se ve así:

abc 123
def 456

Luego quiero usar un script para analizar los datos y presentarlos de la siguiente manera:

first abc second 123
third def fourth 456

Hasta ahora he creado esto:

#!/bin/sh
#

for i in data.txt; do while read -r a b; do
    echo "First $a second $b"
    echo "third $a fourth $b"

done < data.txt
done

Y el resultado se ve así:

First abc second 123
third abc fourth 123
First def second 456
third def fourth 456

Entonces, en lugar de leer cada línea y aplicarla una vez y pasar a la siguiente línea en data.txt, sigue aplicando los mismos datos al siguiente comando de eco y luego pasa a la siguiente línea. Sé que probablemente estoy pasando por alto algo simple, pero ha sido un día largo. :)

Respuesta1

Podrías hacer dos lecturas en un solo bucle.

#!/bin/sh

while read -r a b && read -r c d; do
  echo "First $a second $b"
  echo "third $c fourth $d"
done < data.txt

Dependiendo de su aplicación real, es posible que también desee consultar xargsex.

xargs -L2 /bin/printf 'First %s second %s\nthird %s fourth %s\n' < data.txt

información relacionada