Sponsored Content
Top Forums Shell Programming and Scripting sed and awk usage to grep a pattern 1 and with reference to this grep a pattern 2 and pattern 3 Post 302905427 by Don Cragun on Wednesday 11th of June 2014 12:27:36 PM
Old 06-11-2014
You could try something like:
Code:
#!/bin/ksh
end_fmt='\t\t\t}\n'
else_fmt='\t\t\t}\n\t\t\telse {\n'
if_fmt='\t\t\tif(yy_current_buffer -> yy_is_our_buffer == 0) {\n'
if_tag='YY_USES_REJECT'
awk -v end_f="$end_fmt" -v else_f="$else_fmt" -v if_f="$if_fmt" -v t="$if_tag" '
$1 == "#ifdef" && $2 == t {
	iff = 1
	printf if_f
	next
}
iff && $1 == "#else" {
	printf else_f
	next
}
iff && $1 == "#endif" {
	iff = 0
	printf end_f
	next
}
1' makefile

If you want to try this on a Solaris/SunOS system, change awk to /usr/xpg4/bin/awk, /usr/xpg6/bin/awk, or nawk.
If you have a file named makefile that contains:
Code:
#ifdef YY_USES_REJECT
				some text
#else
				some more text
#endif
			text after endif
#ifdef YY_OTHER_TAG
				nothing should happen here
#else
				or here
#endif
			or here.  Above #ifdef should not have been changed.
#ifdef YY_USES_REJECT
				some text again
#else
				some more text again
#endif
			text after endif again

the script above will produce the output:
Code:
			if(yy_current_buffer -> yy_is_our_buffer == 0) {
				some text
			}
			else {
				some more text
			}
			text after endif
#ifdef YY_OTHER_TAG
				nothing should happen here
#else
				or here
#endif
			or here.  Above #ifdef should not have been changed.
			if(yy_current_buffer -> yy_is_our_buffer == 0) {
				some text again
			}
			else {
				some more text again
			}
			text after endif again

This User Gave Thanks to Don Cragun For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Split a file based on pattern in awk, grep, sed or perl

Hi All, Can someone please help me write a script for the following requirement in awk, grep, sed or perl. Buuuu xxx bbb Kmmmm rrr ssss uuuu Kwwww zzzz ccc Roooowwww eeee Bxxxx jjjj dddd Kuuuu eeeee nnnn Rpppp cccc vvvv cccc Rhhhhhhyyyy tttt Lhhhh rrrrrssssss Bffff mmmm iiiii Ktttt... (5 Replies)
Discussion started by: kumarn
5 Replies

2. Shell Programming and Scripting

Extracting pattern only with AWK | SED | GREP

We have the following statement working in CGYWIN, but when we move the program to Solaris 10 it fails. x=`echo "ABC196925XYZ" | grep -o --only-matching "\{6\}"` How can we use AWK or SED to extract only the number from the string? The following outputs the entire string. We only want... (5 Replies)
Discussion started by: James Clark
5 Replies

3. Shell Programming and Scripting

How to awk/sed/grep lines which contains a pattern at a given position

Dear friends I am new to linux and was trying to split some files userwise in our linux server. I have a data file of 156 continuous columns named ecscr final. I want the script to redirect all the lines containing a pattern of 7 digits to separate files. I was using grep to do that,... (2 Replies)
Discussion started by: anoopvraj
2 Replies

4. Shell Programming and Scripting

Help to search multiple pattern in file with grep/sed/awk

Hello All, I have a file which is having below type of data, Jul 19 2011 | 123456 Jul 19 2011 | 123456 Jul 20 2011 | 123456 Jul 20 2011 | 123456 Here I wanted to grep for date pattern as below, so that it should only grep "Jul 20" OR "Jul ... (9 Replies)
Discussion started by: gr8_usk
9 Replies

5. UNIX for Dummies Questions & Answers

One liner pattern search with awk/sed/grep

I have an array containing bunch of characters. I have to check this array for specific character and if "Not Found than" use a goto statement to go to USAGE set options = (A B C D E F) @ i = 0 while ($i <= ${#options}) if ($options != "F" || $options != "D") then goto USAGE endif @... (1 Reply)
Discussion started by: dixits
1 Replies

6. Shell Programming and Scripting

How to print the lines between the pattern using awk/grep/sed?

Hi, I need a help to search a pattern and print the multiple lines between them. Input file: Tue May 29 12:30:33 EDT 2012:threadWebContainer : 357:com.travimp.hotelierlinks.abba.service.RequestHandler.requestService(String, ITICSDataSet): hotelCancelReservation request: ... (4 Replies)
Discussion started by: aroragaurav.84
4 Replies

7. Shell Programming and Scripting

Sed/awk : to grep only required pattern disk

Hi Experts, Need help with the following: Desired output: Only want to get the output marked in green. The file: --- Physical volumes --- PV Name /dev/disk/disk4704 PV Status available Total PE 6399 Free PE ... (3 Replies)
Discussion started by: rveri
3 Replies

8. UNIX for Dummies Questions & Answers

Grep -v lines starting with pattern 1 and not matching pattern 2

Hi all! Thanks for taking the time to view this! I want to grep out all lines of a file that starts with pattern 1 but also does not match with the second pattern. Example: Drink a soda Eat a banana Eat multiple bananas Drink an apple juice Eat an apple Eat multiple apples I... (8 Replies)
Discussion started by: demmel
8 Replies

9. Shell Programming and Scripting

sed -- Find pattern -- print remainder -- plus lines up to pattern -- Minus pattern

The intended result should be : PDF converters 'empty line' gpdftext and pdftotext?xml version="1.0"?> xml:space="preserve"><note-content version="0.1" xmlns:/tomboy/link" xmlns:size="http://beatniksoftware.com/tomboy/size">PDF converters gpdftext and pdftotext</note-content>... (9 Replies)
Discussion started by: Klasform
9 Replies

10. UNIX for Beginners Questions & Answers

Grep/awk using a begin search pattern and end search pattern

I have this fileA TEST FILE ABC this file contains ABC; TEST FILE DGHT this file contains DGHT; TEST FILE 123 this file contains ABC, this file contains DEF, this file contains XYZ, this file contains KLM ; I want to have a fileZ that has only (begin search pattern for will be... (2 Replies)
Discussion started by: vbabz
2 Replies
STRUCT 
IRQ_DESC(9) Structures STRUCT IRQ_DESC(9) NAME
struct_irq_desc - interrupt descriptor SYNOPSIS
struct irq_desc { unsigned int irq; struct timer_rand_state * timer_rand_state; unsigned int * kstat_irqs; #ifdef CONFIG_INTR_REMAP struct irq_2_iommu * irq_2_iommu; #endif irq_flow_handler_t handle_irq; struct irq_chip * chip; struct msi_desc * msi_desc; void * handler_data; void * chip_data; struct irqaction * action; unsigned int status; unsigned int depth; unsigned int wake_depth; unsigned int irq_count; unsigned long last_unhandled; unsigned int irqs_unhandled; raw_spinlock_t lock; #ifdef CONFIG_SMP cpumask_var_t affinity; unsigned int node; #ifdef CONFIG_GENERIC_PENDING_IRQ cpumask_var_t pending_mask; #endif #endif atomic_t threads_active; wait_queue_head_t wait_for_threads; #ifdef CONFIG_PROC_FS struct proc_dir_entry * dir; #endif const char * name; }; MEMBERS
irq interrupt number for this descriptor timer_rand_state pointer to timer rand state struct kstat_irqs irq stats per cpu irq_2_iommu iommu with this irq handle_irq highlevel irq-events handler [if NULL, __do_IRQ] chip low level interrupt hardware access msi_desc MSI descriptor handler_data per-IRQ data for the irq_chip methods chip_data platform-specific per-chip private data for the chip methods, to allow shared chip implementations action the irq action chain status status information depth disable-depth, for nested irq_disable calls wake_depth enable depth, for multiple set_irq_wake callers irq_count stats field to detect stalled irqs last_unhandled aging timer for unhandled count irqs_unhandled stats field for spurious unhandled interrupts lock locking for SMP affinity IRQ affinity on SMP node node index useful for balancing pending_mask pending rebalanced interrupts threads_active number of irqaction threads currently running wait_for_threads wait queue for sync_irq to wait for threaded handlers dir /proc/irq/ procfs entry name flow handler name for /proc/interrupts output AUTHORS
Thomas Gleixner <tglx@linutronix.de> Author. Ingo Molnar <mingo@elte.hu> Author. COPYRIGHT
Kernel Hackers Manual 2.6. July 2010 STRUCT IRQ_DESC(9)
All times are GMT -4. The time now is 05:30 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy