Sponsored Content
Top Forums Shell Programming and Scripting Finding the displacement of a particular field in a file Post 302604531 by birei on Monday 5th of March 2012 09:34:40 AM
Old 03-05-2012
Hi bobby1015,

One way:
Code:
$ cat infile
00000
0000:0000
YYNNN
20120302
NAME:010:C
ACCOUNT NUM:015,00:N
DATE:008,00:D
#DATA#
ROGER     00000002346123720120302
MAX        00000003654774020110612
JOHNSON  00000000000103420120713
#END#
0000003
$ cat script.pl
use warnings;
use strict;

die qq[Usage: perl $0 <infile> \n] unless @ARGV == 1;

my $displacement = 1;

printf qq[%s\t\t%s\n], qq[Field], qq[Displacement];
while ( <> ) {
        my @f = split /[:,]/, $_;
        next unless @f >= 2;
        if ( $f[0] =~ m/\D/ && $f[1] =~ m/\A\d+\Z/ ) {
                printf qq[%s\t\t%s\n], $f[0], $displacement;
                $displacement += $f[1];
        }
}


$ perl script.pl infile
Field           Displacement
NAME            1
ACCOUNT NUM             11
DATE            26

Regards,
Birei
This User Gave Thanks to birei For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Regarding displacement of certain string

Hello,ladies and gentlemen I want to displace a string with another different string in a Korn shell file(*.h) which will includes the code to achieve the goal.How should I code? For example, In receive.sh,I wanna use (Hi) to replace all the (hello).The code to achieve this must be... (2 Replies)
Discussion started by: joshuaduan
2 Replies

2. Shell Programming and Scripting

Finding unique reocrds at a particular field

I have a pipe delimited flat file. I want to grep the records that are unique in the 4th field and repeat only once in the file for e.g.. if the file contains this 3 records i want to get the o/p as: I just gave a sample here and the file is huge one and i cant just grep from the... (7 Replies)
Discussion started by: dsravan
7 Replies

3. Shell Programming and Scripting

Help with finding length of a field

I have a pipe delimited file. I need to check that the first and second fields are 5 characters long and if not i need to append 0 in front of them to make them 5 characters long. can some body let mwe know how i can find the length of the two fields and then make them 5 characters long if they... (6 Replies)
Discussion started by: dsravan
6 Replies

4. Shell Programming and Scripting

awk command for finding field in a file

hi guys i have this file with column number 7 as below: 0 1416 49 37 5 3 2 0 0 0 21 0 26 ... (5 Replies)
Discussion started by: npatwardhan
5 Replies

5. Shell Programming and Scripting

finding field count escaping the blank values

Hi All I have a file.Below are few records of the file. sample.txt CPS,ES,843232910001,ESF81462,W N LINDSAY LTD,01674840629,09-FEB-2009,23-FEB-2009,CDR735,ALL CALLS,01674840629 CPS,ES,843232670001,ESF81462,W N LINDSAY LTD,01674840629,09-FEB-2009,23-FEB-2009,CDR734,ALL... (2 Replies)
Discussion started by: king007
2 Replies

6. Shell Programming and Scripting

Appending 1st field in a file into 2nd field in another file

Hi, I've internally searched through forums for about 2+ hours. Unfortunately, with no luck. Although I've found some cases close to mine below, but didn't help so much. Actually, I'm in short with time. So I had to post my case. Hoping that you can help. I have 2 files, FILE1 ... (0 Replies)
Discussion started by: amurib
0 Replies

7. Shell Programming and Scripting

Help finding a field value then printing line

Hello, I'm trying to only print out the file systems that are greater than 90% full. So far I've got: df -k >sawky8 cat sawky8 | grep -v Filesystem | sed "s/%//g;" >sawky9 cat sawky9 | awk '{print $4}' | read stot print $stot if ;then echo $LINE Problem is it stops after the first... (2 Replies)
Discussion started by: Grueben
2 Replies

8. Shell Programming and Scripting

Help with Awk finding and replacing a field based on a condition

Hi everybody, I'm trying to replace the $98 field with "T" if the last field (108th) is T I've tried awk 'BEGIN{OFS=FS="|"} {if ($108=="T")sub($98,"T"); print}' test.txt but that doesn't do anything also tried awk 'BEGIN{OFS=FS="|"}{ /*T.$/ sub($98,"T")} { print}' test.txt but... (2 Replies)
Discussion started by: jghi123
2 Replies

9. Shell Programming and Scripting

Finding the length of a string in a field

I have a field MPN-BANK-NUMBERO:006,00:N in a file FILE1 How can i display the length of the Bank Number.Any idea ? The output shud take the following format FILE 1 6 Where 1 is the starting position and 6 is the Ending position. (9 Replies)
Discussion started by: bobby1015
9 Replies

10. UNIX for Dummies Questions & Answers

Finding difference in 1st field for rows of data

I have a file that has multiple lines, of grouped data, that typically all have the same values in the 1st field, however, I would like to search the 1st field for any differences and set a flag to use in an "if" statement to run some other routine. An example of the typical file is below,... (2 Replies)
Discussion started by: co21ss
2 Replies
GRUB-FSTEST(3)						     Library Functions Manual						    GRUB-FSTEST(3)

NAME
grub-fstest -- Debug tool for GRUB's filesystem driver. SYNOPSIS
grub-fstest [-c | --diskcount=NUM] [-C | --crypto] [-d | --debug=STRING] [-K | --zfs-key=FILE|prompt] [-n | --length=NUM] [-r | --root=DEVICE_NAME] [-s | --skip=NUM] [-u | --uncompress] [-v | --verbose] IMAGE_PATH <blocklist FILE | cat FILE | cmp FILE LOCAL | cp FILE LOCAL | crc FILE | hex FILE | ls PATH | xnu_uuid DEVICE> DESCRIPTION
grub-fstest is a tool for testing GRUB's filesystem drivers. You should not normally need to run this program. OPTIONS
--diskcount=NUM Specify the number of input files. --crypto Mount cryptographic devices. --debug=STRING Set debug environment variable. --zfs-key=FILE|prompt Load ZFS cryptographic key. --length=NUM Handle NUM bytes in output file. --root=DEVICE_NAME Set root device. --skip=NUM Skip NUM bytes from output file. --uncompress Uncompress data. --verbose Print verbose messages. COMMANDS
blocklist FILE Display block list of FILE. cat FILE Display FILE on standard output. cmp FILE LOCAL Compare FILE with local file LOCAL. cp FILE LOCAL Copy FILE to local file LOCAL. crc FILE Display the CRC-32 checksum of FILE. hex FILE Display contents of FILE in hexidecimal. ls PATH List files at PATH. xnu_uuid DEVICE Display the XNU UUID of DEVICE. SEE ALSO
info grub Wed Feb 26 2014 GRUB-FSTEST(3)
All times are GMT -4. The time now is 03:20 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy