Insere texto em arquivo usando scripts bash (NÃO anexando)

1

Eu quero adicionar texto a um arquivo usando scripts de shell. A solução que conheço é se você deseja inserir seu texto em uma nova linha (acrescentar):

echo "mytext" >> myfile.txt 

o que eu quero ter um texto contínuo no final do processo.

for ((I=0; I <72 ; I++))
  do
    echo "mytext$I, " >> myfile.txt   ????? 
done

Eu quero algo como:

mytext0, mytext1, mytext2, mytext3, ...., mytext71

mas em vez disso eu obtenho:

mytext0, 
mytext1, 
....
mytext71
    
por H'H 27.08.2015 / 10:22

2 respostas

1

Em bash (e também shell que suporte à expansão de chaves ), você pode fazer:

printf '%s\n' "$(printf 'mytext%s\n\n' {1..71})" | paste -sd', ' - >out

No shell POSIX:

printf '%s\n' "$(
n=1
while [ "$n" -le 71 ]; do
  printf 'mytext%s\n\n' "$n"
  n=$((n+1))
done
)" | paste -sd', ' - >out
    
por 27.08.2015 / 10:54
1

Você só precisa se certificar de não anexar uma nova linha ao final da saída: basta substituir echo por echo -n ou printf . Eu recomendaria o último como é mais portátil.

    
por 27.08.2015 / 10:44