Bash script - How to update header of scripts in one pass - multiline search/replace


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Bash script - How to update header of scripts in one pass - multiline search/replace
# 8  
Old 08-28-2019
Here I used awk to replace everything except "#" on your "§" line with spaces. This is used as a template to insert the required comments:
Code:
awk -v D=2019_08_25 -v V=34-1-9 -v M=9-7-3 '
function com(str) {
   print substr($0, 0, pos - 1) str substr($0, pos + length(str))
}
/§/ {
   pos=index($0, "§")
   gsub(/[^# \t]/, " ")
   com("§" D "§")
   com("")
   com("¨version:" V "¨")
   com("")
   com("ɸmodif_version:" M "ɸ")
   skip=1
}
/ɸ/ && skip==1 { skip = 2 ; next }
skip == 1 {next }
1' "$SOME_FILE"

This helps the formatting to match:
Code:
#!/bin/bash 
# 
####################### 
#                                        # 
#    {config_std}                        # 
#                                        # 
#    /sys_script/000_COMMON/Bin/some_script 
#                                        # 
#    INSTALL VERSION                     # 
#                                        # 
#    §2019_08_25§                        #  
#                                        #  
#    ¨version:34-1-9¨                    #  
#                                        #  
#    ɸmodif_version:9-7-3ɸ               #  
#                                        # 
######################## 
# 
# object 
# 
######################################################## 
# 
#


Last edited by Chubler_XL; 08-28-2019 at 06:05 PM.. Reason: Missed colon following version
This User Gave Thanks to Chubler_XL For This Post:
# 9  
Old 08-31-2019
Quote:
Originally Posted by Chubler_XL
Here I used awk to replace everything except "#" on your "§" line with spaces. This is used as a template to insert the required comments:
Code:
awk -v D=2019_08_25 -v V=34-1-9 -v M=9-7-3 '
function com(str) {
   print substr($0, 0, pos - 1) str substr($0, pos + length(str))
}
/§/ {
   pos=index($0, "§")
   gsub(/[^# \t]/, " ")
   com("§" D "§")
   com("")
   com("¨version:" V "¨")
   com("")
   com("ɸmodif_version:" M "ɸ")
   skip=1
}
/ɸ/ && skip==1 { skip = 2 ; next }
skip == 1 {next }
1' "$SOME_FILE"

This helps the formatting to match:
Code:
#!/bin/bash 
# 
####################### 
#                                        # 
#    {config_std}                        # 
#                                        # 
#    /sys_script/000_COMMON/Bin/some_script 
#                                        # 
#    INSTALL VERSION                     # 
#                                        # 
#    §2019_08_25§                        #  
#                                        #  
#    ¨version:34-1-9¨                    #  
#                                        #  
#    ɸmodif_version:9-7-3ɸ               #  
#                                        # 
######################## 
# 
# object 
# 
######################################################## 
# 
#


Thank you very much
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

awk script to extract a column, replace one of the header and replace year(from ddmmyy to yyyy)

I have a csv which has lot of columns . I was looking for an awk script which would extract a column twice. for the first occurance the header and data needs to be intact but for the second occurance i want to replace the header name since it a duplicate and extract year value which is in ddmmyy... (10 Replies)
Discussion started by: Kunalcurious
10 Replies

2. Shell Programming and Scripting

Pass arguments to bash script

myscript.sh #!/bin/bash ARGA=$1 if ; then echo "${ARGA}:Confirmed" else echo "${ARGA}:Unconfirmed" fi when I run the above script from the command line, i run it as: ./myscript.sh jsmith now some times, i need to runn it this way: (8 Replies)
Discussion started by: SkySmart
8 Replies

3. UNIX and Linux Applications

Script to delete few rows from a file and then update header

HJKL1Name00014300010800000418828124201 L201207022012070228XAM 00000000031795404 001372339540000000000000000000000 COOLTV KEYA Zx00 xI-50352202553 00000000 00000000 G000000000000 00000000 ... (10 Replies)
Discussion started by: mirwasim
10 Replies

4. Shell Programming and Scripting

Can BASH handle mathematical operations and do a Search & Replace?

Hello, I have a bunch of xml file that needs to have edits made and I was wondering if a BASH script could handle it. I would like the script to look within my xml files and replace all integers greater than 5px with a value that is 25% smaller. For example, 100px = 75px. Since the integers... (12 Replies)
Discussion started by: jl487
12 Replies

5. Shell Programming and Scripting

Search Replace and Update a file

hi, I am stuck at a place. Please help me out. Here is what i need to do. Search for a pattern in a propertyfile and change only at one occurance. I have these statements and assignment as a part of the propertyfile #Note : The Address should be replaced with actual address dynamically. ... (7 Replies)
Discussion started by: raghu_shekar
7 Replies

6. Shell Programming and Scripting

Bash sed search and replace question

I have several files that I need to modify using sed. I know how to do that, but now a new requirement has come up. Now, I need to make changes to all lines that don't start with certain strings. For example, I need to change all lines except for lines that start with "a", "hello there",... (3 Replies)
Discussion started by: RickS
3 Replies

7. Shell Programming and Scripting

bash search and replace

Hello all, I would like to replace some text that are forwarded in standard output from a script, then save the replaced text to a file. The text i would like to replace is in the form of: 1 some text 1.1 other text 1.2 more text 1.2.1 still more text i would like to replace 1 some... (5 Replies)
Discussion started by: dolphin06
5 Replies

8. Shell Programming and Scripting

awk script to update header record

I am using HP UX and think this may be done with awk but bot sure. I have a file with a several header records and undeneath many detail records I need to put in the header record the number of detail records above this header record and number of detail records below this header record Header... (5 Replies)
Discussion started by: klut
5 Replies

9. Shell Programming and Scripting

How to pass passwords to bash scripts?

I'm finding the following command very tedious to type in all the time, so I created a one line bash script called mount.bash with the following contents: mount -t cifs //mark/C\$ -o unc=//mark\\C$,ip=10.1.1.33,user=Administrator,password=$1 /mnt/mark I don't like the fact that I have to put... (5 Replies)
Discussion started by: siegfried
5 Replies

10. Shell Programming and Scripting

search and replace by bash

Hello everyone! I have a file: text.txt and also a list of replacement: replace.txt (tabbed) is isn\'t Mac Windows will won\'t \.\n \! <--- ! plus 2 spaces I want a script which will change text.txt as I made a script: #!/bin/bash echo Please input the file of... (2 Replies)
Discussion started by: Euler04
2 Replies
Login or Register to Ask a Question