Supondo que seu arquivo seja chamado de configs
, você pode conseguir isso com
for i in $(cat configs); do echo "filename=$i">$i; done
Eu tenho um arquivo contendo uma lista de nomes de arquivos, como este
file1.cfg
file2.cfg
file3.cfg
Eu quero, usando o terminal linux, dividir isso em n
arquivos com o nome do arquivo, cada um contendo também o nome do arquivo como uma string.
Por exemplo, após a transformação, quero que o conteúdo de file1.cfg
seja
filename=file1.cfg
e em file2.cfg
filename=file2.cfg
etc.
Qual é a melhor maneira de conseguir isso?
Contanto que você conte awk
como shell, isso é simplesmente
awk '{print "filename="$0 >$0}' file.cfg
Algo como isso deve fazer o truque:
while read line; do echo "filename=$line" > $line; done < file
ele abrirá o arquivo, lerá linha por linha e, para cada linha, criará um arquivo com o nome sendo o conteúdo da linha e, em seguida, gravará uma linha nesse arquivo com o conteúdo do comando echo
(sendo filename =).
advertência: eu não testei realmente.
Tags command-line bash linux shell