Script para escrever no início de cada linha de um arquivo de texto o nome do arquivo

2

Eu gostaria de escrever um script de shell que me permita abrir um arquivo de texto com um nome específico e escrever o nome do arquivo no início de cada linha. Então, se meu arquivo é chamado de "teste" e tem três linhas:

SCORE1 567
SCORE2 434
SCORE3 789 

o script abriria e mudaria para isso:

test SCORE1 567 
test SCORE2 434
test SCORE3 789 

Em seguida, deve salvá-lo sobrescrevendo o arquivo original.

Idealmente, o script executaria essa modificação em todos os arquivos de uma determinada pasta, gravando dentro de cada um o nome daquele arquivo em particular em cada linha.

Uma vez que este processo é feito, eu vou alimentar esses arquivos para outro script que irá combiná-los em um único que será posteriormente analisado com uma planilha.

Você poderia me ajudar com isso? Eu tenho algumas idéias, mas gostaria de ler as suas. Eu quase não tenho experiência em escrever scripts de shell.

    
por iiciieii 18.02.2015 / 17:12

1 resposta

1

Você pode usar o seguinte script,

#!/bin/bash
awk -v var="$1" '{print var" "$0 }' "$1" > /tmp/temp.txt
mv /tmp/temp.txt "$1"

Conceda a permissão de execução de script, como chmod +x scriptname

Execute o script como

./scriptname test

assumindo que "teste" é o arquivo que você irá modificar e você está executando o script na mesma pasta onde o arquivo "teste" está localizado.

    
por souravc 18.02.2015 / 18:00