Bash 如何将shellscript的命令提取并解析到文件中?

Bash 如何将shellscript的命令提取并解析到文件中?,bash,shell,heroku,append,string-concatenation,Bash,Shell,Heroku,Append,String Concatenation,我在Shell脚本中有以下程序: #!/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 for命令每行的结果是: === mws-usp-

我在
Shell脚本中有以下程序:

#!/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
for命令每行的结果是:

=== mws-usp-app01 Config Vars
CLEARDB_DATABASE_URL:         mysql://<user>:<password>@<hostname>/<defaultschema>?reconnect=true
DATABASE_URL:                 postgres://...:...@ec2-23-21-73-32.compute-1.amazonaws.com:5432/dalmmfh5cs6nqa
HEROKU_POSTGRESQL_PURPLE_URL: postgres://...:...@ec2-50-19-219-148.compute-1.amazonaws.com:5432/de4hk500aj9f1q
JAVA_OPTS:                    -XX:+UseCompressedOops
=== mws-usp-app02 Config Vars
CLEARDB_DATABASE_URL:         mysql://<user>:<password>@<hostname>/<defaultschema>?reconnect=true
DATABASE_URL:                 postgres://...:...@ec2-23-21-73-32.compute-1.amazonaws.com:5432/dalmmfh5cs6nqa
HEROKU_POSTGRESQL_PURPLE_URL: postgres://...:...@ec2-50-19-219-148.compute-1.amazonaws.com:5432/de4hk500aj9f1q
JAVA_OPTS:                    -XX:+UseCompressedOops
...
=== mws-usp-app50 Config Vars
CLEARDB_DATABASE_URL:         mysql://<user>:<password>@<hostname>/<defaultschema>?reconnect=true
DATABASE_URL:                 postgres://...:...@ec2-23-21-73-32.compute-1.amazonaws.com:5432/dalmmfh5cs6nqa
HEROKU_POSTGRESQL_PURPLE_URL: postgres://...:...@ec2-54-243-204-86.compute-1.amazonaws.com:5432/d5gngl61fsq95o
JAVA_OPTS:                    -XX:+UseCompressedOops 



假设您的输出位于名为input.txt的文件中,您可以使用sed:

  sed -n 's/CLEARDB_DATABASE_URL.*mysql:\/\/\(.*:.*\)@.*/\1/p' input.txt > usernames.txt
或者,立即使用shell脚本的输出:

  <your_script> | sed -n 's/CLEARDB_DATABASE_URL.*mysql:\/\/\(.*:.*\)@.*/\1/p' > usernames.txt
|sed-n的/CLEARDB\u数据库URL.*mysql:\/\/\(.*:.*)@.*/\1/p'>usernames.txt

也许有一个更简单的方法,但这是我脑海中最快想到的;)

你能从一个这样的实例中发布一个示例
值吗?Hello@Inian,一个示例是:
=b69ab75f269r50
=c6f5230r6
你好,a.Grieco,我在两个循环中为:
sudo-u${USERNAME}heroku-config--app mws-usp-app0${I};sed-n's/CLEARDB\\数据库URL.*@.*/\1/p'>usernames.txt
,但是只有第一个
mws-usp-app01
的用户和密码值。在usernames.txt文件中,只有值“ab526723abc4762:0bd236b9”我如何通过空格更改
的符号?
sed-n的/CLEARDB\u数据库URL.*mysql:\/\/\(.\):\(.*):(.*))@.*/\1\2/p'>>usernames.txt
用空格分隔用户名和密码。
>
附加在文件末尾,而不是重写它。如果它仍然不适用于您,请发表评论。没有脚本,很难进行测试;)Hello@A.Grieco,它起作用了,但是只有文本文件的第一行被标记为
我应该如何删除它?实际上,又出现了一行,如何在
之前插入每行的编号以
  sed -n 's/CLEARDB_DATABASE_URL.*mysql:\/\/\(.*:.*\)@.*/\1/p' input.txt > usernames.txt
  <your_script> | sed -n 's/CLEARDB_DATABASE_URL.*mysql:\/\/\(.*:.*\)@.*/\1/p' > usernames.txt