sed 's: \\ :: g' não parece funcionar corretamente durante a instalação do Gazebo

0

Estou tentando compilar o Gazebo no meu Ubuntu 17.04.

Estou seguindo estas instruções , mas parece ser um erro no seguinte:

sudo apt-get install $(sed 's:\ ::g' <<< $BASE_DEPENDENCIES) $(sed 's:\ ::g' <<< $GAZEBO_BASE_DEPENDENCIES)

Eu não entendo o que está fazendo aqui: sed 's:\ ::g'

Quando executo o comando anterior sudo apt-get install ... , recebo o seguinte erro 42 vezes:

E: Unable to locate package \

Eu ecoei as duas variáveis.

echo $BASE_DEPENDENCIES
build-essential \ cmake \ debhelper \ mesa-utils \ cppcheck \ xsltproc \ python-psutil \ python \ bc \ netcat-openbsd \ gnupg2 \ net-tools \ locales

E o outro:

echo $GAZEBO_BASE_DEPENDENCIES
libfreeimage-dev \ libprotoc-dev \ libprotobuf-dev \ protobuf-compiler \ freeglut3-dev \ libcurl4-openssl-dev \ libtinyxml-dev \ libtar-dev \ libtbb-dev \ libogre-1.9-dev \ libxml2-dev \ pkg-config \ qtbase5-dev \ libqwt-qt5-dev \ libltdl-dev \ libgts-dev \ libboost-thread-dev \ libboost-signals-dev \ libboost-system-dev \ libboost-filesystem-dev \ libboost-program-options-dev \ libboost-regex-dev \ libboost-iostreams-dev \ libbullet-dev \ libsimbody-dev \ \ libignition-transport3-dev \ libignition-math3-dev \ libignition-msgs-dev \ libtinyxml2-dev \ libsdformat5-dev

A saída para o comando sed 's:\ ::g' <<< $BASE_DEPENDENCIES é:

build-essential \
                   cmake           \
                   debhelper       \
                   mesa-utils      \
                   cppcheck        \
                   xsltproc        \
                   python-psutil   \
                   python          \
                   bc              \
                   netcat-openbsd  \
                   gnupg2          \
                   net-tools       \
                   locales

UPDATE
Eu tentei o comando sed 's:\[[:space:]]::g' <<< $BASE_DEPENDENCIES com a seguinte saída:

user@Mpc:~$ sed 's:\[[:space:]]::g' <<< $BASE_DEPENDENCIES
build-essential \
                   cmake           \
                   debhelper       \
                   mesa-utils      \
                   cppcheck        \
                   xsltproc        \
                   python-psutil   \
                   python          \
                   bc              \
                   netcat-openbsd  \
                   gnupg2          \
                   net-tools       \
                   locales

UPDATE 2
Parece que o comando sed está ok. Se eu fizer o seguinte, sem usar a variável env, recebo a string correta:

user@pc:~$ echo 'build-essential \ cmake \ debhelper \ mesa-utils \ cppcheck \ xsltproc \ python-psutil \ python \ bc \ netcat-openbsd \ gnupg2 \ net-tools \ locales' | sed 's:\ ::g'
build-essential cmake debhelper mesa-utils cppcheck xsltproc python-psutil python bc netcat-openbsd gnupg2 net-tools locales

UPDATE 3
Se eu cercar o env. vars. e ecoou eu recebo as novas linhas e os espaços. Mas se eu ecoar sem as aspas, fico em uma linha.

E se eu usar sed com o env. var sem aspas Eu recebo o valor da variável com novas linhas e espaços.

Como posso corrigir esse erro?

    
por VansFannel 18.10.2017 / 16:52

1 resposta

0

O comando sed deve remover todas as barras invertidas do conteúdo da variável, mas espera que as contrabarras sejam seguidas por espaços. Mas parece que eles são seguidos por novas linhas, então use

sed -z 's:\[[:space:]]::g'

em vez disso (isso é para o GNU sed , apenas, mas já que você está no Ubuntu ...).

    
por 18.10.2017 / 17:27

Tags