Regexpr bei der Bash

10/06/2009 - 16:19 von Philipp Kraus | Report spam
Hallo,

ich habe folgende Variablen:
LIBS="/opt/library/gsl/1.9.0/lib /opt/library/boost/1.39.0/lib"
INCS="/opt/library/gsl/1.9.0/include
/opt/library/boost/1.39.0/include/boost-1_39"
LD_LINK="boost_mpi-gcc43-mt-1_39 boost_serialization-gcc43-mt-1_39"

Bei LIBS und INC müssten beliebige viele Leerzeichen zwischen den
eintràgen durch einen einzigen : ersetzt werden.
Analog LD_LINK nur das hier die Leerzeichen durch " -l"
(Leerzeichen-Bindestich-Buchstabe l-Eintrag) ersetzt werden.
Ich denke mit regExpr geht das, aber wie macht ich das unter der Bash
bzw innerhalb der /etc/profile

Phil
 

Lesen sie die antworten

#1 Jochen Lübbers
10/06/2009 - 16:35 | Warnen spam
Philipp Kraus schrieb:
Hallo,

ich habe folgende Variablen:
LIBS="/opt/library/gsl/1.9.0/lib /opt/library/boost/1.39.0/lib"
INCS="/opt/library/gsl/1.9.0/include
/opt/library/boost/1.39.0/include/boost-1_39"
LD_LINK="boost_mpi-gcc43-mt-1_39 boost_serialization-gcc43-mt-1_39"

Bei LIBS und INC müssten beliebige viele Leerzeichen zwischen den
eintràgen durch einen einzigen : ersetzt werden.
Analog LD_LINK nur das hier die Leerzeichen durch " -l"
(Leerzeichen-Bindestich-Buchstabe l-Eintrag) ersetzt werden.
Ich denke mit regExpr geht das, aber wie macht ich das unter der Bash
bzw innerhalb der /etc/profile



Wenn Du das wirklich innerhalb von /etc/profile machen möchtest, dann
musst Du bedenken, dass nicht nur die bash, sondern auch sh, ksh, pdksh
usw. /etc/profile einlesen (und verstehen wollen/sollen). Deshalb
empfehle ich hier: sed

Mit ein Ausdruck (ungetestet!) a la 's/ */:/g' kommst du weiter.
(man sed(1) ist Dein Freund.)

Gruß
Jochen
"Wer die Freiheit aufgibt, um Sicherheit zu gewinnen,
der wird am Ende beides verlieren"

Ähnliche fragen