Search code examples
jsonlinuxbashapplication.properties

How to ignore particular keys inside .properties files while converting to json


I have .property file which I'm trying to convert to a json file using bash command(s) and I wanted to exclude particular keys being shown in the json file. Below are my .properties inside the property file, I want to exclude property 4 and 5 being converted to json

app.database.address=127.0.0.70
app.database.host=database.myapp.com
app.database.port=5432
app.database.user=dev-user-name
app.database.pass=dev-password
app.database.main=dev-database

Here's my bash command used for converting to json but it converts all the properties to json

cat fle.properties | jq -R -s 'split("\n") | map(split("=")) | map({(.[0]): .[1]}) | add' > zppprop.json

Is there any way we can include these parameters to exclude from converting to json


Solution

  • You may filter out unneeded lines with grep:

    cat fle.properties | grep -v -E "user|pass" | jq -R -s 'split("\n") | map(select(length > 0)) | map(split("=")) | map({(.[0]): .[1]}) | add'
    

    It is also needed to remove the empty string at the end of the array returned by the split function. This is what map(select(length > 0)) is doing.