[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Ajuda com o Sed



Parece que voce nao precisa do segundo arquivo:
a solucao parece ser:

#!/bin/bash

[ "$2" = "" ] && exit 1 ## se o primeiro parametro for vazio, acaba o ## script com status error
nome_do_db=$1  ## o primeiro parametro dado 'e o nome do db.

latex_arquivo=${nome_do_db}.ltx ## arquivo final
##( tu tambem poderia ## designar um directorio para salvar os ## arquivos finais: ) ## directorio_final=$2 ## o segundo parametro seria o nome desse ## directorio ## [ "$2" = "" ] && exit 1 ## se o segundo parametro for vazio, acaba o ## script com status error

## latex_arquivo="$directorio_final/"`basename $1`".ltx" ##

for linha in `cat $nome_do_db` ## para cada linha do arquivo dado ..
do
arquivo_basename=`basename $linha` ## o nome no arquivo sem o ## directorio
	string1="\chapter{Arquivo $linha}" ## controi a primeira linha
string2="\lstinputlisting{$arquivo_basename}" ## constroi a ##segunda linha
	echo string1 >> $latex_arquivo ##escreve a primeira linha
	echo string2 >> $latex_arquivo ##escreve a segunda linha
echo >> $latex_arquivo ## coloca uma linha em branco entre as ## entradas no arquivo final
done

exit 0 ## finaliza o programa com status sucessfull

Savio Ramos wrote:
Olá,

Desejo juntar dois arquivos e creio que seria o uso do Sed a solução do
problema.


O primeiro arquivo contém os nomes e caminhos dos arquivos acrescidos de uma
contra barra antes do sublinhado:

qcadactions/src/rs\_actioninfodist2.cpp
qcadactions/src/rs\_actionlayersadd.cpp
qcadactions/src/rs\_actionblocksexplode.cpp
qcadactions/src/rs\_actionfilesave.cpp
[...] e assim vai...



O segundo contém os nomes dos arquivos sem a contra barra antes do
sublinado:

rs_actiondrawcircle.cpp
rs_actioninfodist2.cpp
rs_actionlayersadd.cpp
rs_actionblocksexplode.cpp
rs_actionfilesave.cpp
[...] e assim vai...



Desejo que sejam mesclados os dois e cada linha fique assim, o caminho do
arquivo e nome do arquivos acrescidos dos comandos do Latex:


\chapter{Arquivo qcadactions/src/rs\_actiondrawcircle.cpp}
\lstinputlisting{rs_actiondrawcircle.cpp}

\chapter{Arquivo qcadactions/src/rs\_actioninfodist2.cpp}
\lstinputlisting{rs_actioninfodist2.cpp}

\chapter{Arquivo qcadactions/src/rs\_actionlayersadd.cpp}
\lstinputlisting{rs_actionlayersadd.cpp}

\chapter{Arquivo qcadactions/src/rs\_actionblocksexplode.cpp}
\lstinputlisting{rs_actionblocksexplode.cpp}

\chapter{Arquivo qcadactions/src/rs\_actionfilesave.cpp}
\lstinputlisting{rs_actionfilesave.cpp}



Qual o programa executa tal façanha? Existe solução simples com o Sed ou tenho
que encarar um estudo maior com Emacs que entendo menos ainda que o Sed que não
entendo nada?

Qualquer ajuda sou-lhes grato pois são mais de 250 arquivos e na mão vou levar
dias para completar a tarefa.




Reply to: