tente
for x in $(<names.in)
do
sed -i -s "s/ genes/ ${x}.Corrected/" Datafile.tsv
done
cat Datafile.tsv
chr begin end name1.Corrected name2.Corrected name3.Corrected name4.Corrected name5.Corrected
- não use o
/g
flag que será aplicado a todas as ocorrências (você deseja substituir um por um) -
substitua meu
' '
por'\t'
-
$names.in
expandiria para "o valor da variável de nomes" (concatenar para .in), isso provavelmente se expandiria para .in -
$(< name.in )
lê o nome do arquivo.in, antes da execução do comando e substitui pelo conteúdo do arquivo (fim da linha fica branco)
um shell mais abrangente
cat "$1" | while read x
do
sed -i -s "s/ genes/ ${x}.Corrected/" "$2"
done
chamado como
myscript.sh names.in Datafile.tsv