Criando um novo arquivo com uma linha adicionada à primeira linha e uma linha adicionada à última

1

Preciso de ajuda ou vou fazer isso é python (lendo uma linha de cada vez) que eu sei que não deveria precisar.

Eu tenho um grande número de arquivos de texto que eu uso usando o find.

FILES=$(find ... -iname "*.txt")
num=0
for doc in $FILES; do
     echo "start string" > cat $doc > echo "end string" > "outfile$num.txt"
     let num=num+1
done

Eu não conheço muitos comandos unix, mas o que eu quero fazer é algo assim:

output "start string" depois cat $ doc depois "end string" para stdout e store no outfile.

Obrigado pela sua ajuda !!

    
por Erik 12.09.2012 / 06:56

1 resposta

0

use

{echo "start string"; cat $doc; echo "end string"} > "outfile$num.txt"

Ou alternativamente:

echo "start string" > "outfile$num.txt"
cat $doc >> "outfile$num.txt"
echo "end string" >> "outfile$num.txt"

Ou ainda outro exemplo usando sed (você pode fazer algo semelhante com o awk):

sed -e '1i start string;$a end string' $doc > "outfile$num.txt"

No primeiro exemplo, os três comandos são simplesmente executados sequencialmente e a saída é então alimentada como um todo para o redirecionamento de saída > "outfile$num.txt" .

No segundo exemplo, fazemos isso em três comandos e usamos o operador >> em vez do operador > para concatenar a saída para o arquivo fornecido, em vez de substituir o arquivo fornecido pela saída.

Além disso, como um aparte, você deve ser cuidadoso com o uso de for doc in $FILES , isso divide em espaços, portanto, se algum dos seus nomes de arquivos contiverem espaços, eles serão interpretados como vários nomes de arquivos em vez de um nome de arquivo.

    
por 12.09.2012 / 07:05

Tags