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 EXIT
hasta que ejecuta el exit
incorporado.
Si pensó que el guión se está cancelando antes porque pensó que las llamadas read -t 1
tomarían un segundo cada una :no, no lo hacen, regresan inmediatamente tan pronto como el padre sale. Cuando el padre sale,las llamadas read
en el subshell intentan leer desde una tubería cerrada, y la llamada al sistema subyacente read
regresa inmediatamente sin datos disponibles.
Я уверен, что это возможно с sed
, но вы могли бы легко сделать это сawk
:
awk 'NR==2 { value=$1 }
FILENAME=="file2" { if (FNR==8) print value; else print }
' file1 file2 > output_file
Заменить строку 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
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