🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #6126

Re: [shell] ¿Cómo guardar la salida completa de un comando en una variable?

#6126
From: sio2
Date: Sat, 02 Aug 2003 14:07
60 lines
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-mail
References: <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)