Sponsored Content
Full Discussion: Matching IF
Top Forums UNIX for Dummies Questions & Answers Matching IF Post 302448993 by agama on Friday 27th of August 2010 06:17:51 PM
Old 08-27-2010
This is simplistic, but might be all that you need to help. It prints if/else/fi lines along with their line numbers. If you have embedded awk and leave a space between the if and opening parenthesis, it will trip over that and you'll need to change it a bit. Won't catch elif statements either, but it should be obvious how to change the script if you need it to.

Code:
#!/usr/bin/env ksh
awk '
        {
                if( $1 == "if"  || $1 == "fi" || $1 == "else" )
                        printf( "%04d: %s\n", NR, $0 );
        }
' <name-of-source-file

Output looks something like:
Code:
0042: if [[ -z $1 ]]
0045: fi
0050:           if (( $# > 1 ))
0053:           fi
0065:                   if [[ ${2:-nothing} == *master* ]]
0068:                   fi
0080: if [[ $url != "random" ]]
0084: fi
0088: if (( $set_vol > 0 ))
0091: fi
0093: if [[ -n $url ]]
0095:   if [[ $url == "random" ]]
0108:   else
0111:   fi
0112: else
0114: fi

Using the output from this script and an editor that gives you line numbers, you should be able to easily match block start/end.
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Matching string

Hello, i have a program where i have to get a character from the user and check it against the word i have and then replace the character in a blank at the same position it is in the word. (7 Replies)
Discussion started by: nehaquick
7 Replies

2. UNIX for Dummies Questions & Answers

Matching

Can anyone give a sample example of comparing two strings using matching concept in unix shell programming. say we have two strings,S1 = ravi and S2 = kiran how can i use matching concept to compare S1 and S2 Can anyone please help me. (2 Replies)
Discussion started by: veerumahanthi41
2 Replies

3. UNIX for Dummies Questions & Answers

Pattern Matching

Hi Folks, I have the following requirement: I have a file that is containing numerous queries. The tables name mentioned in the queries are in the following format : SchemaName.Tablename. e.g COPDB.TableName. I need to take out all the COPDB.TableName pattern and write it to a different... (0 Replies)
Discussion started by: Siv_Pat
0 Replies

4. Shell Programming and Scripting

Pattern Matching

Hi Folks, I have the following requirement: I have a file that is containing numerous queries. The tables name mentioned in the queries are in the following format : SchemaName.Tablename. e.g COPDB.TableName. I need to take out all the COPDB.TableName pattern and write it to a different... (6 Replies)
Discussion started by: Siv_Pat
6 Replies

5. Shell Programming and Scripting

awk: matching and not matching

Hello all, simple matching and if not match problem that i can't figure out. file1 hostname: 30 10 * * * /home/toto/start PROD instance_name1 -p 00 9 * * * /home/toto/start PROD instance_name2 -p 15 8 * * * /home/toto/start PROD instance_name3 -p hostname2: 00 8 * * *... (5 Replies)
Discussion started by: maverick72
5 Replies

6. Shell Programming and Scripting

matching in loop

hello all, this is probably very simple for you guys but i am trying to achive something like below...i have 2 files...file 1 has entries like below DB1:NS DB2:NS DB3:NS DB4 DB5:NS and file2 as below DB1 DB2 DB5 i was to write a loop statment were if there is a matching... (1 Reply)
Discussion started by: abdul.irfan2
1 Replies

7. Shell Programming and Scripting

Pattern matching

Hi guys I am trying to create a regular expression to match a word with the following pattern: any letter(one or more occurence) followed by a digit(one or more occurence) followed by any letter(one or more occurence) I have tried the following regex but it fails to find what I need: $... (4 Replies)
Discussion started by: aoussenko
4 Replies

8. Shell Programming and Scripting

Insert lines above matching line with content from matching

Hi, I have text file: Name: xyz Gender: M Address: "120_B_C; ksilskdj; lsudlfw" Zip: 20392 Name: KLM Gender: F Address: "65_D_F; wnmlsi;lsuod;,...." Zip:90233I want to insert 2 new lines before the 'Address: ' line deriving value from this Address line value The Address value in quotes... (1 Reply)
Discussion started by: ysrini
1 Replies

9. Shell Programming and Scripting

Compare file1 for matching line in file2 and print the difference in matching lines

Hello, I have two files file 1 and file 2 each having result of a query on certain database tables and need to compare for Col1 in file1 with Col3 in file2, compare Col2 with Col4 and output the value of Col1 from File1 which is a) not present in Col3 of File2 b) value of Col2 is different from... (2 Replies)
Discussion started by: RasB15
2 Replies

10. Shell Programming and Scripting

awk to combine all matching dates and remove non-matching

Using the awk below I am able to combine all the matching dates in $1, but I can not seem to remove the non-matching from the file. Thank you :). file 20161109104500.0+0000,x,5631 20161109104500.0+0000,y,2 20161109104500.0+0000,z,2 20161109104500.0+0000,a,4117... (3 Replies)
Discussion started by: cmccabe
3 Replies
GIT-REQUEST-PULL(1)						    Git Manual						       GIT-REQUEST-PULL(1)

NAME
git-request-pull - Generates a summary of pending changes SYNOPSIS
git request-pull [-p] <start> <url> [<end>] DESCRIPTION
Generate a request asking your upstream project to pull changes into their tree. The request, printed to the standard output, begins with the branch description, summarizes the changes and indicates from where they can be pulled. The upstream project is expected to have the commit named by <start> and the output asks it to integrate the changes you made since that commit, up to the commit named by <end>, by visiting the repository named by <url>. OPTIONS
-p Include patch text in the output. <start> Commit to start at. This names a commit that is already in the upstream history. <url> The repository URL to be pulled from. <end> Commit to end at (defaults to HEAD). This names the commit at the tip of the history you are asking to be pulled. When the repository named by <url> has the commit at a tip of a ref that is different from the ref you have locally, you can use the <local>:<remote> syntax, to have its local name, a colon :, and its remote name. EXAMPLE
Imagine that you built your work on your master branch on top of the v1.0 release, and want it to be integrated to the project. First you push that change to your public repository for others to see: git push https://git.ko.xz/project master Then, you run this command: git request-pull v1.0 https://git.ko.xz/project master which will produce a request to the upstream, summarizing the changes between the v1.0 release and your master, to pull it from your public repository. If you pushed your change to a branch whose name is different from the one you have locally, e.g. git push https://git.ko.xz/project master:for-linus then you can ask that to be pulled with git request-pull v1.0 https://git.ko.xz/project master:for-linus GIT
Part of the git(1) suite Git 2.17.1 10/05/2018 GIT-REQUEST-PULL(1)
All times are GMT -4. The time now is 09:59 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy