I have a database.yml file like
development: adapter: mysql2 encoding: utf8 database: d360 host: localhost username: root password: password test: adapter: mysql2 encoding: utf8 database: sample host: localhost username: root password: password Now, I want value of database of test environment (that is sample for the YAML shown). How can we do that using sed?
yml files you have to install and use Docker Compose. After the installation, go to your docker-compose. yml directory and then execute docker-compose up to create and start services in your docker-compose. yml file.
a lightweight and portable command-line YAML processor. yq uses jq like syntax but works with yaml files as well as json.
How to open a YML file. You can open a YML file in any text editor, such as Microsoft Notepad (Windows) or Apple TextEdit (Mac). However, if you intend to edit a YML file, you should open it using a source code editor, such as Microsoft Visual Studio Code (cross-platform) or GitHub Atom (cross-platform).
yq is a command-line tool designed to transform YAML. It is similar to jq which focuses on transforming JSON instead of YAML.
That is fairly easy, not using sed, but with appropriate shell tools. First, if you need to preserve sample in a variable for later use, then something like the following will work using bash substring replacement to isolate sample on the Test:/database: line:
$ db=$(grep -A3 'test:' database.yml | tail -n1); db=${db//*database: /}; echo "$db" sample or for a shorter solution that you can dump to the command line, remove the variable and command substitution and use a tool like cut:
$ grep -A3 'test:' database.yml | tail -n1 | cut -c 13- sample or, with awk, simply:
$ grep -A3 'test:' database.yml | tail -n1 | awk '{ print $2}' sample All of the different ways can be used inside command substitution (i.e. var=$(stuff) ) to store sample in var, it is just a matter of which you would rather use. I think you get the idea.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With