Sponsored Content
Top Forums Shell Programming and Scripting Combining gsub and substr in awk Post 302472597 by giannicello on Wednesday 17th of November 2010 02:23:50 PM
Old 11-17-2010
Combining gsub and substr in awk

I have data a.txt:
Quote:
123456701234567890abcdefghijklmnopqrsccyy-mm-dd0000000001Pccyy-mm-ddABCDEFGH
123456701234567890abcdefghijklmnopqrsccyy-mm-dd0000000009Pccyy-mm-ddABCDEFGH
123456701234567890abcdefghijklmnopqrsccyy-mm-dd0000000050Pccyy-mm-ddABCDEFGH
I want to reformat file to look like this:

Quote:
1234567|01234567890abcdefghijklmnopqrs|1|ccyymmdd|
1234567|01234567890abcdefghijklmnopqrs|9|ccyymmdd|
1234567|01234567890abcdefghijklmnopqrs|50|ccyymmdd|
basically with the 3rd columns having leading zeros removed.

My code a.awk:

Code:
awk '{ v=substr($0, 48,10); print substr($0,1,7)"|"substr($0,8,30)"|"gsub("0*","
",v)"|"substr($0,59,4)substr($0,64,2)substr($0,67,2)"|"}' a.txt

always returns '2' in the third column and I'm wondering why and how i can strip out the leading zeroes while awk'ing:

Quote:
1234567|01234567890abcdefghijklmnopqrs|2|ccyymmdd|
1234567|01234567890abcdefghijklmnopqrs|2|ccyymmdd|
1234567|01234567890abcdefghijklmnopqrs|2|ccyymmdd|
I'm trying to avoid doing another while read file just to make that substitution.
I would use 'bc" if it is possible.

Thanks.
Gianni
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

use var in gsub of awk

Hi all, This problem has cost me half a day, and i still do not know how to do. Any help will be appreciated. Thanks advance. I want to use a variable as the first parameters of gsub function of awk. Example: { ... arri]=gsub(i,tolower(i),$1) (which should be ambraced by //) ... } (1 Reply)
Discussion started by: summer_cherry
1 Replies

2. Shell Programming and Scripting

Help with AWK and gsub

Hello, I have a variable that displays the following results from a JVM.... 1602100K->1578435K I would like to collect the value of 1578435 which is the value after a garbage collection. I've tried the following command but it looks like I can't get the > to work. Any suggestions as... (4 Replies)
Discussion started by: npolite
4 Replies

3. Shell Programming and Scripting

awk gsub

Hi all I want to do a simple substitution in awk but I am getting unexpected output. My function accepts a time and then prints out a validation message if the time is valid. However some times may include a : and i want to strip this out if it exists before i get to the validation. I have shown... (4 Replies)
Discussion started by: pxy2d1
4 Replies

4. Shell Programming and Scripting

Awk Gsub Query

Hi, Can some one please explain the following line please throw some light on the ones marked in red awk '{print $9}' ${FTP_LOG} | awk -v start=${START_DATE} 'BEGIN { FS = "." } { old_line1=$0; gsub(/\-/,""); if ( $3 >= start ) print old_line1 }' | awk -v end=${END_DATE} 'BEGIN { FS="." } {... (3 Replies)
Discussion started by: crosairs
3 Replies

5. Shell Programming and Scripting

Awk gsub error.

I want to replace comma with space and "*646#" with space. I am using the following code: nawk -F"|" '{gsub(","," ",$3); gsub(/\*646\#/"," ",$3);print}' OFS="|" file I am getting following error: Help is appreciated (5 Replies)
Discussion started by: pinnacle
5 Replies

6. Shell Programming and Scripting

Help with awk and gsub using C shell

Being new to awk, I am still running into little stupid things. For this issues I am trying to search for all occurrences of a string in a file and replace all of those occurrences with a replacement string. I tried doing awk '{gsub("|750101|", "|000000|", $0)}' infile > outfile Unix... (3 Replies)
Discussion started by: jclanc8
3 Replies

7. Shell Programming and Scripting

Awk; gsub in fields 3 and 4

I want to transform a log file into input for a database. Here's the log file: Tue Aug 4 20:17:01 PDT 2009 Wireless users: 339 Daily Average: 48.4285 = Tue Aug 11 20:17:01 PDT 2009 Wireless users: 295 Daily Average: 42.1428 = Tue Aug 18 20:17:01 PDT 2009 Wireless users: 294 Daily... (6 Replies)
Discussion started by: Bubnoff
6 Replies

8. Shell Programming and Scripting

awk gsub

Hi, I want to print the first column with original value and without any double quotes The output should look like <original column>|<column without quotes> $ cat a.txt "20121023","19301229712","100397" "20121023","19361629712","100778" "20121030A","19361630412","100838"... (3 Replies)
Discussion started by: ysrini
3 Replies

9. UNIX for Dummies Questions & Answers

awk gsub with variables

Hello, I'm trying to substitute a string with leading zero for all the records except the trailer record using awk command and with variables. The input file test_med1.txt has data like below 1234ABC...........................9200............LF... (2 Replies)
Discussion started by: somu_june
2 Replies

10. 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
NUMFMT_GET_ERROR_CODE(3)						 1						  NUMFMT_GET_ERROR_CODE(3)

NumberFormatter::getErrorCode - Get formatter's last error code.

	Object oriented style

SYNOPSIS
public int NumberFormatter::getErrorCode (void ) DESCRIPTION
Procedural style int numfmt_get_error_code (NumberFormatter $fmt) Get error code from the last function performed by the formatter. PARAMETERS
o $fmt -NumberFormatter object. RETURN VALUES
Returns error code from last formatter call. EXAMPLES
Example #1 numfmt_get_error_code(3) example <?php $fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL ); $data = numfmt_format($fmt, 1234567.891234567890000); if(intl_is_failure(numfmt_get_error_code($fmt))) { report_error("Formatter error"); } ?> Example #2 OO example <?php $fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL ); $fmt->format(1234567.891234567890000); if(intl_is_failure($fmt->getErrorCode())) { report_error("Formatter error"); } ?> SEE ALSO
numfmt_get_error_message(3), intl_get_error_code(3), intl_is_failure(3). PHP Documentation Group NUMFMT_GET_ERROR_CODE(3)
All times are GMT -4. The time now is 04:53 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy