Sponsored Content
Top Forums Shell Programming and Scripting Using multiple gsub() function under a loop in awk Post 302894539 by useless79 on Wednesday 26th of March 2014 05:00:08 AM
Old 03-26-2014
Using multiple gsub() function under a loop in awk

Hi ALL,

I want to replace string occurrence in my file "Config" using a external file named "Mapping" using awk.

$cat Config
! Configuration file for RAVI
! Configuration file for RACHANA
! Configuration file for BALLU


$cat Mapping
ravi:ram
rachana:shyam
ballu:hameed

The expected output after running the awk script should be

! Configuration file for RAM
! Configuration file for SHYAM
! Configuration file for HAMMEED

For the out expected out I used awk as below.

Code:
$ awk ' {FS=":"} FNR==NR { array[$1]=$2; next  }  {FS=" "} FNR!=NR 
{ for (i in array)  IGNORECASE = 1 gsub("Configuration file for "i, "Configuration file for " array[i])    }1
'   Mapping   Config

And the output is coming as expected.
But when I use two gsub() functions (other one for an additional replacement)
one with IGNORECASE = 0 and other with IGNORECASE = 1. my second gsub("Configuration file for "i, "Configuration file for " array[i]) function is not working as expected.

Code:
$ awk ' {FS=":"} FNR==NR { array[$1]=$2; next  }  {FS=" "} FNR!=NR 
{ for (i in array)  gsub("^"i, array[i])   IGNORECASE = 1 gsub("Configuration file for "i, "Configuration file for " array[i])  }1
'   Mapping   Config


Can any one help me to know how to use two gsub() function under a for loop with first gsub() case sensitive and second one case insensitive search. Can any one help me improving the above code ?

Thanks in advance.....
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Handling multiple fields of a database file for toupper() function in awk

hello everyone.... script is: To convert the contents of a database file into uppercase my code is: printf "%s\n" , $2 | awk '{print toupper($2)}' emp.lst i m able to do only for one field.....didn't get any sources for handling multiple fields. please suggest me for multiple... (1 Reply)
Discussion started by: Priyanka Bhati
1 Replies

2. Shell Programming and Scripting

Using of gsub function in AWK to replace space by underscore

I must design a UNIX script to monitor files whose size is over a threshold of 5 MB in a specific UNIX directory I meet a problem during the for loop in my script. Some file names contain spaces. ls -lrt | awk '$5>=5000000 && length($8)==5 {gsub(/ /,"_",$9); print};' -rw-r--r-- 1 was61 ... (2 Replies)
Discussion started by: Scofield38
2 Replies

3. Shell Programming and Scripting

Loop through multiple rows using awk

Hi, i'm been browsing through the threads on how to do looping of multiple lines in awk but havent found the one i needed. I have a data which looks like this below. I need to compute for the monthly average of values per record and i used the awk argument below. how do i tell awk to execute the... (9 Replies)
Discussion started by: ida1215
9 Replies

4. Shell Programming and Scripting

awk + gsub to search multiple input values & replace with located string + extra text

Hi all. I have the following command that is successfully searching for any one of the strings on all lines of a file and replacing it with the instructed value. cat inputFile | awk '{gsub(/aaa|bbb|ccc|ddd/,"1234")}1' > outputFile This does in fact replace any occurrence of aaa, bbb,... (2 Replies)
Discussion started by: dazhoop
2 Replies

5. UNIX for Dummies Questions & Answers

awk: multiple gsub in a script

%%%%% (1 Reply)
Discussion started by: lucasvs
1 Replies

6. Shell Programming and Scripting

awk gsub multiple fields

Hi, I am trying to execute this line awk -F ";" -v OFS=";" '{gsub(/\./,",",$6); print}' FILE but for multiple fields $6 $7 $8 Do you have a suggstion? Tried: awk -F ";" -v OFS="";"" "function GSUB( F ) {gsub(/\./,\",\",$F); print} { GSUB( 6 ); GSUB( 7 ); GSUB( 8 ) } 1"... (2 Replies)
Discussion started by: nakaedu
2 Replies

7. Shell Programming and Scripting

Gsub function in awk

Hello, I had some difficulty to understand the gsub function and maybe the regex in this script to remove all the punctuations: awk 'gsub(//, " ", $0)' text.txtFile text.txt: This is a test for gsub I typed this random text file which contains punctuation like ,.;!'"?/\ etc. The script... (6 Replies)
Discussion started by: yifangt
6 Replies

8. UNIX for Beginners Questions & Answers

awk GSUB read field values from multiple text files

My program run without error. The problem I am having. The program isn't outputting field values with the column headers to file.txt. Each of the column headers in file.txt has no data. MEMSIZE SECOND SASFoundation Filename The output results in file.txt should show: ... (1 Reply)
Discussion started by: dellanicholson
1 Replies

9. Shell Programming and Scripting

awk gsub command to replace multiple spaces

Hi Forum. I'm trying to cleanup the following data elements (To remove any occurences of commas and any extra spaces) while preserving the <TAB> delimiter using awk gsub but I have not been successful. Original Data: 4365 monte des source rue,, ,<TAB>trevost<TAB>QC Desired Data:... (1 Reply)
Discussion started by: pchang
1 Replies

10. Shell Programming and Scripting

Make awk gsub take value of for loop

I am running Debian, mksh shell and #!/bin/mksh script. Here is one instance I am trying to match. There are other level and n values, but they must be gathered in numerical order or the program will not work properly: level="0" n="0" Here is my code which does not work: { for (a = 0; a <=... (15 Replies)
Discussion started by: bedtime
15 Replies
Config::Model::models::LCDd::CFontzPacket(3pm)		User Contributed Perl Documentation	    Config::Model::models::LCDd::CFontzPacket(3pm)

NAME
Config::Model::models::LCDd::CFontzPacket - Configuration class LCDd::CFontzPacket VERSION
version 2.021 DESCRIPTION
Configuration classes used by Config::Model generated from LCDd.conf Elements Model Select the LCD model Optional. Type enum. choice: '533', '631', '633', '635'. upstream_default: '633'. Device Select the output device to use Optional. Type uniline. upstream_default: '/dev/lcd'. Contrast Set the initial contrast Optional. Type integer. upstream_default: '560'. Brightness Set the initial brightness Optional. Type integer. upstream_default: '1000'. OffBrightness Set the initial off-brightness This value is used when the display is normally switched off in case LCDd is inactive. Optional. Type integer. upstream_default: '0'. Reboot Reinitialize the LCD's BIOS on driver start. Optional. Type enum. choice: 'yes', 'no'. upstream_default: 'no'. USB Enable the USB flag if the device is connected to an USB port. For serial ports leave it disabled. Optional. Type enum. choice: 'yes', 'no'. upstream_default: 'no'. OldFirmware Very old 633 firmware versions do not support partial screen updates using 'Send Data to LCD' command(31). For those devices it may be necessary to enable this flag. Optional. Type enum. choice: 'yes', 'no'. upstream_default: 'no'. Size Override the LCD size known for the selected model. Usually setting this value should not be necessary.Optional. Type uniline. default: '20x4'. Speed Override the default communication speed known for the selected model. Default value depends on model Optional. Type enum. choice: '19200', '115200'. SEE ALSO
o cme perl v5.14.2 2012-11-09 Config::Model::models::LCDd::CFontzPacket(3pm)
All times are GMT -4. The time now is 10:45 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy