Article View: es.comp.os.linux.programacion
Article #6126Re: [shell] ¿Cómo guardar la salida completa de un comando en una variable?
From: sio2
Date: Sat, 02 Aug 2003 14:07
Date: Sat, 02 Aug 2003 14:07
60 lines
2872 bytes
2872 bytes
El s�bado, 02 de agosto de 2003, a las 12:50 GMT, Gorka Olaizola escribi�:
>
> [...]
> El problema es que al meterlo en una variable se me sustituyen los saltos de
> l�nea y grep me muestra todo el contenido de la variable en vez de la l�nea
> afectada.
> He estado mirando si grep tiene alguna opci�n para buscar otro final de
> l�nea y sustituirlos antes de meterlos en la variable por \0 pero parece que
> grep s�lo admite saltos de l�nea como fin de cadena.
>
A falta de que alguien d� una respuesta m�s inteligente, se me ocurre
que dado que esto:
#v+
NUMEROS="1\n2\n3\n4\n5\n6\n7\n8\n9\n10"
echo -e $NUMEROS
#v-
te devuelve cada n�mero en una l�nea; lo que se puede hacer es convertir
los cambios de l�nea del programa que genera el texto en "\n" usando
sed. Por ejemplo, esto:
#v+
NUMEROS=$(seq 1 10)
echo -e $NUMEROS
#v-
va mal (han desaparecido los cambios de l�nea). Pero usando sed como
filtro para sustituir lo cambios de l�nea por "\n", no:
#v+
NUMEROS=$(seq 1 10 | sed 'N;s/\n/\\n/;h;G;D' )
echo -e $NUMEROS
#v-
Este c�digo me imprime los n�meros cada uno en su l�nea. Y ya est�. Un
echo -e $AQUI_ESTA_LA_SALIDA_DEL_PROGRAMA
si has filtrado la salida con sed, te devuelve por pantalla exactamente
lo mismo que el propio programa. As� no tienes que buscarle a grep, sed,
awk o a cualquier otra aplicaci�n ninguna opci�n especial.
Espero que te sirva de ayuda.
--
Todos buscan quien ampare, yo quien enmiende; que m�s
quiero ir entendido que defendido.
--- Lope de Vega ---
Si Di�xido de Silicio | Debian GNU/Linux
/ \ (SiO2) | Jos� Miguel S�nchez Al�s
O O Mineral de Cuarzo | sio2.arr@ba.online.fr | URL #257033
Technical Details
Message-ID:
<slrnbinhdo.ugq.sio2.arr@cebolleta.net.dhis.org>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!headwall.stanford.edu!fu-berlin.de!uni-berlin.de!22.red-80-37-129.pooles.rima-tde.NET!not-for-mailReferences:
<slrnbincr4.m9v.gorka@conn.helvete.escomposlinux.org>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,255c5327470b611a X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2003-08-02 07:08:07 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!headwall.stanford.edu!fu-berlin.de!uni-berlin.de!22.red-80-37-129.pooles.rima-tde.NET!not-for-mail From: sio2 <sio2.arr@ba.online.fr> Newsgroups: es.comp.os.linux.programacion Subject: Re: [shell] ¿Cómo guardar la salida completa de un comando en una variable? Date: Sat, 2 Aug 2003 16:07:53 +0200 Lines: 60 Message-ID: <slrnbinhdo.ugq.sio2.arr@cebolleta.net.dhis.org> References: <slrnbincr4.m9v.gorka@conn.helvete.escomposlinux.org> Reply-To: sio2.arr@ba.online.fr NNTP-Posting-Host: 22.red-80-37-129.pooles.rima-tde.net (80.37.129.22) Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Trace: news.uni-berlin.de 1059833285 25894674 80.37.129.22 (16 [113866]) X-Orig-Path: cebolleta.net.dhis.org!news User-Agent: slrn/0.9.7.4 (Linux)