Como extrair e analisar os comandos do shellscript no arquivo?

0

Eu tenho o seguinte programa em Shell Script :

#!/bin/sh

max=9
for i in 'seq 1 $max'
do
    sudo -u ${USERNAME} heroku config --app mws-usp-app0${i}
done

max=50
for i in 'seq 10 $max'
do
    sudo -u ${USERNAME} heroku config --app mws-usp-app${i}
done

O resultado de cada linha do comando for é:

=== mws-usp-app01 Config Vars
CLEARDB_DATABASE_URL:         mysql://<user>:<password>@us-cdbr-iron-east-04.cleardb.net/heroku_cf843140f07f0a2?reconnect=true
DATABASE_URL:                 postgres://...:[email protected]:5432/dalmmfh5cs6nqa
HEROKU_POSTGRESQL_PURPLE_URL: postgres://...:[email protected]:5432/de4hk500aj9f1q
JAVA_OPTS:                    -XX:+UseCompressedOops
=== mws-usp-app02 Config Vars
CLEARDB_DATABASE_URL:         mysql://<user>:<password>@us-cdbr-iron-east-04.cleardb.net/heroku_cf843140f07f0a2?reconnect=true
DATABASE_URL:                 postgres://...:[email protected]:5432/dalmmfh5cs6nqa
HEROKU_POSTGRESQL_PURPLE_URL: postgres://...:[email protected]:5432/de4hk500aj9f1q
JAVA_OPTS:                    -XX:+UseCompressedOops
...
=== mws-usp-app50 Config Vars
CLEARDB_DATABASE_URL:         mysql://<user>:<password>@us-cdbr-iron-east-04.cleardb.net/heroku_b154acff411bcfc?reconnect=true
DATABASE_URL:                 postgres://...:[email protected]:5432/dalmmfh5cs6nqa
HEROKU_POSTGRESQL_PURPLE_URL: postgres://...:[email protected]:5432/d5gngl61fsq95o
JAVA_OPTS:                    -XX:+UseCompressedOops 

Como analisar CLEARDB_DATABASE_URL para obter todos os valores de <user> e <password> e colocá-los dentro de um arquivo de texto separado por espaço em branco?

Nota: O <user> e <password> são apenas caracteres alfanuméricos. Um exemplo de <user> = b69ab75f269r50 e <password> = c6f5230r6 .

    
por ricardoramos 14.11.2016 / 15:52

2 respostas

1
... | perl -nE '/CLEARDB_DATABASE_URL:.*mysql:..(.*?):(.*?)@/ and say "$1:$2"'

Encontre seu padrão ( /.../ ) e imprima os elementos capturados relevantes ( and say ... )

    
por 14.11.2016 / 16:26
0

Isso deve ajudar (não testado)

./<your-shell-script> | grep "^CLEARDB_DATABASE_URL" | awk -F: '{print $3":"$4}' > output-file
    
por 14.11.2016 / 16:42

Tags