Sponsored Content
Top Forums Shell Programming and Scripting Help me in awk or sed in UNIX Post 302975019 by Skrynesaver on Tuesday 7th of June 2016 07:14:17 AM
Old 06-07-2016
Assumes file can fit in memory...
A less memory intensive cersion is alos possible reading the file in blocks of 3 lines

Code:
$ cat tmp/tmp.pl
#!/usr/bin/perl
use strict;
use warnings;
open (my $test,'<','tmp/tmp.dat');
my @lines=readline($test);
for (my $line=0;$line<$#lines;$line+=3){
    my @second=split/ /,$lines[$line + 1];
    if ($second[2]=~/\(/){
        my @first=split/ /,$lines[$line];
        $first[4].='new' ;
        $lines[$line]=join(" ",@first);
    }
    for my $inc (0..2){
        print $lines[$line + $inc]
    }
}

$ cat tmp/tmp.dat
a@ a00 a00000 a00 a000000 a00 a0000 a0000 a00000000 a01
a@ a1 a2 a11 a22 a12 a13 a44 a45 a54 a65 a76 a77
a@ a1 a3 a6 a7 a9 a8 a2 a7 a8 a8 a9 a0
b@ b00 b00000 b00 b000000 b00 b0000 b0000 b00000000 b01
b@ b1 b2 b11 b22 b12 b13 b44 b45 b54 b65 b76 b77
b@ b1 b3 b6 b7 b9 b8 b2 b7 b8 b8 b9 b0
c@ c00 c00000 c00 c000000 c00 c0000 c0000 c00000000 c01
c@ c1 c( c11 c22 c12 c13 c44 c45 c54 c65 c76 c77
c@ c1 c3 c6 c7 c9 c8 c2 c7 c8 c8 c9 c0
d@ d00 d00000 d00 d000000 d00 d0000 d0000 d00000000 d01
d@ d1 d2 d11 d22 d12 d13 d44 d45 d54 d65 d76 d77
d@ d1 d3 d6 d7 d9 d8 d2 d7 d8 d8 d9 d0


$ perl  tmp/tmp.pl
a@ a00 a00000 a00 a000000 a00 a0000 a0000 a00000000 a01
a@ a1 a2 a11 a22 a12 a13 a44 a45 a54 a65 a76 a77
a@ a1 a3 a6 a7 a9 a8 a2 a7 a8 a8 a9 a0
b@ b00 b00000 b00 b000000 b00 b0000 b0000 b00000000 b01
b@ b1 b2 b11 b22 b12 b13 b44 b45 b54 b65 b76 b77
b@ b1 b3 b6 b7 b9 b8 b2 b7 b8 b8 b9 b0
c@ c00 c00000 c00 c000000new c00 c0000 c0000 c00000000 c01
c@ c1 c( c11 c22 c12 c13 c44 c45 c54 c65 c76 c77
c@ c1 c3 c6 c7 c9 c8 c2 c7 c8 c8 c9 c0
d@ d00 d00000 d00 d000000 d00 d0000 d0000 d00000000 d01
d@ d1 d2 d11 d22 d12 d13 d44 d45 d54 d65 d76 d77
d@ d1 d3 d6 d7 d9 d8 d2 d7 d8 d8 d9 d0


Last edited by Skrynesaver; 06-07-2016 at 08:15 AM.. Reason: Clarify limits of script
 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

sed in awk ? or nested awk ?

Hey all, Can I put sed command inside the awk action ?? If not then can i do grep in the awk action ?? For ex: awk '$1=="174" { ppid=($2) ; sed -n '/$ppid/p' tempfind.txt ; }' tempfind.txt Assume: 174 is string. Assume: tempfind.txt is used for awk and sed both. tempfind.txt... (11 Replies)
Discussion started by: varungupta
11 Replies

2. UNIX for Advanced & Expert Users

unix awk/sed program

i need a sample unix awk/sed program to replace param3 in a file. i have sample file a.dat with the following format/length (week 8, sku 20, store 20 and qty 8). all store id's which end with _2 needs to be replaced with div id 2. all store id's which end with _1 needs to be replaced with div id... (4 Replies)
Discussion started by: mnnarendra
4 Replies

3. Shell Programming and Scripting

help with sed or awk

I need to add a field at the beginning of each record in the file. The file is comma seperated. Can somebody throw some light. My record looks something like this I need to add 100 at the beginning of each record. o/p should be (2 Replies)
Discussion started by: dsravan
2 Replies

4. UNIX for Dummies Questions & Answers

What should be precedence of using awk, sed, head and tail in UNIX?

Hi All, I am new to unix. In this forum some days back, I have read something like below: 1) Do not use perl if awk can do your work. 2) Do not use awk if sed can do your work. . . . I do not re-collect the whole thing. I think it is good to know the precedence of using these... (2 Replies)
Discussion started by: Prathmesh
2 Replies

5. Shell Programming and Scripting

sed and awk giving error ./sample.sh: line 13: sed: command not found

Hi, I am running a script sample.sh in bash environment .In the script i am using sed and awk commands which when executed individually from terminal they are getting executed normally but when i give these sed and awk commands in the script it is giving the below errors :- ./sample.sh: line... (12 Replies)
Discussion started by: satishmallidi
12 Replies

6. Shell Programming and Scripting

Awk/sed help

Dear All, The row_eff_tmstp (4th field) and row_expr_tmstp(5th field) in below data represents. If row_expr_tmstp is less than row_eff_tmstp I should replace that as null. First record is header record. I/P ------ DD04 DD040001 DD040001 NO NO NONE ... (1 Reply)
Discussion started by: srikanth38
1 Replies

7. Shell Programming and Scripting

Join the line on delimiter using sed/awk in UNIX

I've input as , abcd| ef 123456| 78| 90 Desired output as, abcdef 1234567890 Anyone please give the solution. (5 Replies)
Discussion started by: jinixvimal
5 Replies

8. Shell Programming and Scripting

Convert Update statement into Insert statement in UNIX using awk, sed....

Hi folks, I have a scenario to convert the update statements into insert statements using shell script (awk, sed...) or in database using regex. I have a bunch of update statements with all columns in a file which I need to convert into insert statements. UPDATE TABLE_A SET COL1=1 WHERE... (0 Replies)
Discussion started by: dev123
0 Replies

9. How to Post in the The UNIX and Linux Forums

Help me in awk or sed in UNIX

I have a fixed length file that looks like a@ a00 a00000 a00 a000000 a00 a0000 a0000 a00000000 a01 a@ a1 a2 a11 a22 a12 a13 a44 a45 a54 a65 a76 a77 a@ a1 a3 a6 a7 a9 a8 a2 a7 a8 a8 a9 a0 b@ b00 b00000 b00... (1 Reply)
Discussion started by: RJG
1 Replies

10. UNIX for Beginners Questions & Answers

UNIX for learning sed/awk/grep..etc..

Greetings all, I am looking for a version of Linux that I can practice my scripting skills on. Currently, I support a massive system running on AIX. I want to do more with awk, sed, grep, and even perl. I am looking for something I can throw on a VM on my personal laptop and mess around with.... (5 Replies)
Discussion started by: jeffs42885
5 Replies
setmaillist(1)						      General Commands Manual						    setmaillist(1)

NAME
setmaillist - create a binary mailing list SYNOPSIS
setmaillist bin tmp DESCRIPTION
setmaillist reads a mailing list from its standard input. setmaillist writes the mailing list in a binary format to tmp; it then moves tmp to bin. tmp and bin must be on the same filesystem. If there is a problem creating tmp, setmaillist complains and leaves bin alone. The binary mailing list format is portable across machines. setmaillist always creates bin world-readable. MAILING LIST FORMAT
The mailing list read by setmaillist is a series of lines. NUL bytes are not allowed. If a line begins with a dot or slash, setmaillist takes the entire line as an include file name. If a line begins with an ampersand, setmaillist takes the rest of the line as a recipient address. If a line begins with a letter or num- ber, setmaillist takes the entire line as a recipient address. Each recipient address must include a fully qualified domain name. Recipi- ent addresses longer than 800 bytes are not allowed. setmaillist ignores blank lines and lines beginning with #. It also ignores spaces and tabs at the ends of lines. For example, god@heaven.af.mil djb@silverton.berkeley.edu is a mailing list with two addresses. SEE ALSO
setforward(1), newinclude(1), printmaillist(1) setmaillist(1)
All times are GMT -4. The time now is 03:20 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy