Help me understand this script

Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Help me understand this script
# 1  
Tools Help me understand this script

Code:
#!/bin/awk -f
BEGIN {i=1;file="modified.txt"}

{
if ($0 !~ /^DS:/) {print $0 >> file} else {
        if ($0 ~ /^DS:/) {print "DS: ",i >> file;if (i==8) {i=1} else {i++}};
   }
}

END {gzip file}

Can someone explain to me how this above script works, I got it from a friend but not able to understand what is happening inside.
when is do this ./script.sh file.txt This script is changing the DS: * value in the file sequencially from 1to8. But I to like to understand how this script is working.

Thank you in advance!!!
Moderator's Comments:
Mod Comment Please use CODE tags when displaying sample input, output, and code segments.

Last edited by Don Cragun; 03-28-2018 at 09:14 AM.. Reason: Add CODE and ICODE tags.
# 2  
Please use code tags for code fragments.

Your code is pretty much straightforward:-
Code:
# BEGIN Block
BEGIN {
        i = 1                           # Initialize i = 1
        file = "modified.txt"           # Initialize file = modified.txt
}
{
        if ( $0 !~ /^DS:/ )             # If record does not start with DS:
                print $0 >> file        # Write record to modified.txt
        else                            # If record does start with DS:
                print "DS: ", i >> file # Write DS: i value to modified.txt

        if ( i == 8)                    # If i value == 8
                i = 1                   # Reset i value to 1
        else                            # If i value != 8
                i++                     # Increment i value by 1
}

# 3  
But this is puzzling:
Code:
END {gzip file}

It does not do anything
# 4  
Just defines two variables?
Login or Register for Dates, Times and to Reply

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #628
Difficulty: Easy
In PHP, True !== 1;
True or False?

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Need help to understand the below shell script

Please help me to understand the below 3 lines of code.execute shell in jenkins 1)APP_IP=$( docker inspect --format '{{ .NetworkSettings.Networks.'"$DOCKER_NETWORK_NAME"'.IPAddress }}' ${PROJECT_NAME_KEY}"-CI" ) 2)HOST_WORKSPACE=$(echo ${WORKSPACE} | sed... (1 Reply)
Discussion started by: naresh85
1 Replies

2. Shell Programming and Scripting

Can't understand script output

New to korn shel1 and having an issue. The following is suppose to read the parameter values from files in a source directory and then pass them on to a log file in a different directory, The ArchiveTracker scripts is suppose to call the parameterreader script to exact the parameter values and... (3 Replies)
Discussion started by: bayouprophet
3 Replies

3. Shell Programming and Scripting

Help to understand a script

Hello world! Can someone please explain me how this code works? I'ts supposed to find words in a dictionary and show the anagrams of the words. { part = word2key($1) data = $1 } function word2key(word, a, i, x, result) { x = split(word, a, "") asort(a) ... (1 Reply)
Discussion started by: jose2802
1 Replies

4. Shell Programming and Scripting

Understand script formte

Hi i have one script and i am running it but not getting current output so i want to understand how to input in the script. when i do help then i am getting below massage thanks got it (1 Reply)
Discussion started by: asavaliya
1 Replies

5. Shell Programming and Scripting

Help me understand the Perl script..

#!/usr/bin/perl use strict; use warnings; print "Demo of array slicing \n"; my @abc="a b c d e f g h i j k l m n o p q r s t u v w x y z"; my @a=@abc; my @random=@abc; my @comp=@abc; my @comp1=(@abc,"Hello",@abc); print "abc is @abc \n"; print "a is @a \n"; print "random is @random \n";... (1 Reply)
Discussion started by: dnam9917
1 Replies

6. Shell Programming and Scripting

Need help to understand ksh script

Hi All, I have a ksh script & would like to understand mening of below lines in script, Starting lines of script is as below, #!/bin/ksh #%W% %I% %D% %T% ---- ??? #%W%G --- ??? num_ctrl_files=0 OS=`uname` if then //g' | egrep -v '(.sh:|.ksh:)' | sed 's/^.*://g' | sed 's/^M//g' |... (6 Replies)
Discussion started by: gr8_usk
6 Replies

7. Shell Programming and Scripting

Need to understand the script pls help

Can u please explain what it is doing #!/bin/sh fullyear=`/home/local/bin/datemmdd 1`"."`date +%Y` uehist=/u05/home/celldba/utility/ue/prod/history echo $fullyear cd $uehist ls -ltr pwroutages.master.$fullyear* | awk '{print $9}' > /u01/home/celldba/tmp/pwroutages_master_all_tmp while... (2 Replies)
Discussion started by: raopatwari
2 Replies

8. Shell Programming and Scripting

Help to understand the script

Hi All; Is there anybody can explain this script please? trap 'C_logmsg "F" "CNTL/c OS signal trapped, Script ${G_SCRIPTNAME] terminated"; exit 1' 2 trap 'C_logmsg "F" "Kill Job Event sent from the Console, Script ${G_SCRIPTNAME] terminated"; exit 1' 15 (3 Replies)
Discussion started by: thankbe
3 Replies

9. Shell Programming and Scripting

Can't understand the script

I am relatively new to Shell Scripting. I can't understand the following two scripts. Can someone please spare a minute to explain? 1) content s of file a are (021) 654-1234 sed 's/(//g;s/)//g;s/ /-/g' a 021-654-1234 2)cut -d: -f1,3,7 /etc/passwd |sort -t: +1n gives error (3 Replies)
Discussion started by: shahdharmit
3 Replies

Featured Tech Videos