извлечь значения из файла и поместить эти значения в определенную строку из другого файла

Tu código no lo explica todo. No tengo idea de lo que estás tratando de hacer. Sin embargo, puedo responder a la pregunta en su título :el proceso >(…)no recibe una señal cuando sale el shell principal. Sale porque llega al final del script, y en este punto ejecuta la trampa EXIThasta que ejecuta el exitincorporado.

Si pensó que el guión se está cancelando antes porque pensó que las llamadas read -t 1tomarían un segundo cada una :no, no lo hacen, regresan inmediatamente tan pronto como el padre sale. Cuando el padre sale,las llamadas readen el subshell intentan leer desde una tubería cerrada, y la llamada al sistema subyacente readregresa inmediatamente sin datos disponibles.

1
07.06.2019, 15:25
3 ответа

Я уверен, что это возможно с sed, но вы могли бы легко сделать это сawk:

awk 'NR==2 { value=$1 }
     FILENAME=="file2" { if (FNR==8) print value; else print }
' file1 file2 > output_file
1
27.01.2020, 23:41

Заменить строку 8 из file2содержимым строки 2 из file1наsed:

Это изменяет file2вместо

sed -i'' '8s/.*/'"$(sed -n '2p' file1)"'/' file2

или то же, что и выше, но впишите изменения вfile2.new

sed '8s/.*/'"$(sed -n '2p' file1)"'/' file2 > file2.new
0
27.01.2020, 23:41
i=`sed -n '2p' file1`

sed  "8s/1.0000/$i/g" file2

выход

DATAFILE 
renf90.dat 
NUMBER_OF_TRAITS 
1 
NUMBER_OF_EFFECTS 
9 
RANDOM_RESIDUAL VALUES 
0.98728E-02
RANDOM_GROUP 
2

Примечание :если вы хотите, чтобы вывод был в файл2

sed -i   "8s/1.0000/$i/g" file2
0
27.01.2020, 23:41

Теги

Похожие вопросы