Sample Header Ad - 728x90

Parse yaml file without using outside tool

0 votes
3 answers
4751 views
I am new to bash, dragged into a problem where I need to update some dynamic parameters in a yaml file Based on query (search4.subsearch1.name), i need to update
-none
name: old_name
into
-none
name: new_name
* Here is the sample file:
-none
    search1:
    	name: name1
    	pass: pass1
    	date: date1
    #these are just commented texts
    
    search2:
      #Adding few more commented lines
    	myname: somename
    	name: name2
    	pass: pass2
    	someotherparam: param1
    
    search3:
    	nameAndSurname: NS
    	namingConv: true
    	varSet: P3
    
    search4:
        #Again adding some special name: strings here
            myname: somename1
            name: new_name
            pass: new_pass
            ptherparam1: T3
    
    	subsearch1:
        	#Again adding some special name strings here
            	myname: somename2
            	name: old_name
            	pass: pass2
            	ptherparam1: param3
    search5:
        #Again adding some special name strings here
            var1: value1
            name: some_name
            pass: some_pass
So based on query (search4.subsearch1.name), I need to update name: old_name into name: new_name * Expeced output:
-none
    search4:
        #Again adding some special name: strings here
            myname: somename1
            name: new_name
            pass: new_pass
            ptherparam1: T3
    
    	subsearch1:
        	#Again adding some special name strings here
            	myname: somename2
            	name: new_name
            	pass: pass2
            	ptherparam1: param3
Tried with awk and sed but that did not work: lineNR=$(awk "/\
Asked by g_jha (19 rep)
Feb 10, 2021, 12:06 PM
Last activity: Feb 9, 2024, 05:12 PM