Essencialmente, você precisa percorrer todos os arquivos de texto em um diretório e, em seguida, adicionar uma pequena seqüência ao início. Não é difícil quando você divide em duas etapas.
Para adicionar a string ao início de um arquivo, o formato seria este:
echo "50 $( cat file.txt )" > file.txt
Se você receber um erro cannot overwrite existing file
, precisará desativar o noclobber
set +o noclobber
Agora você só precisa soltar isso em um loop que percorre os arquivos que deseja alterar.
for FILE in $( ls /mydata/ | grep txt$ ) ; do
echo "${FILE}"
done
Se isso gerar todos os arquivos que você deseja alterar corretamente, inclua o comando para alterar os arquivos (conforme abaixo). Caso contrário, altere a instrução grep até que ela corresponda ao que você precisa.
for FILE in $( ls /mydata/ | grep txt$ ) ; do
echo "50 $( cat ${FILE} )" > "${FILE}"
done
E se você quiser em uma linha:
for FILE in $( ls /mydata/ | grep txt$ ) ; do echo "50 $( cat ${FILE} )" > "${FILE}"; done
Editar
Se você quiser o 50 em sua própria linha, use printf junto com \n
em vez de eco, como abaixo.
for FILE in $( ls /mydata/ | grep txt$ ) ; do printf "50\n$( cat ${FILE} )" > "${FILE}"; done