Sponsored Content
Top Forums Shell Programming and Scripting Copy a field into n line in another place Post 302636655 by Yeaboem on Monday 7th of May 2012 07:43:35 PM
Old 05-07-2012
here's a quickie that may do what you want... add error checking and adjust the regex to more exactly match your input file... don't know what your data represents so forgive the single-char variable names.

Code:
#!/bin/perl

open(I, "< in_file");
open(O, "> out_file");
$inbody=0;
while(<I>) {
    chomp;
    next if /^\s*$/;
    if (/^###/) {
        $inbody=0;
        print O "$_\n";
        next;
    }
    if ($inbody eq 0) {
        ($yr, $md) = /^\s*(\d+)\s+(\d+)/;
        $inbody=1;
    } else {
        ($a, $b, $c, $d) = /^\s*(\S+)\s*\S+\s+(\S+)\s+\S+\s+(\S+)\s+(\S+)/;
        print O "$a ? ? ? $b ? ${yr}${md} $c $d\n";
    }
}
close(I);
close(O);

This User Gave Thanks to Yeaboem For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Getting the value of a line, that changes place

Hi I am trying to get the value of several results in a file called seq032.diag. The values I am looking for is down under Smooth Tracking nodes and is for g01r01 g02r01 s01t02 etc etc. The problem is that when I try to use look for text and tail etc, it works fine in one result file. In... (1 Reply)
Discussion started by: Navigatorchief
1 Replies

2. Solaris

What is the best way to copy data from place to another place?

Dear Gurus, I need you to advice or suggestion about the best solution to copy data around 200-300G from serverA(location A) to serverB(location B). Normally, I will share folder and then copy but it takes too long time(about 2 days). Do you have any suggestion or which way should be... (9 Replies)
Discussion started by: unitipon
9 Replies

3. UNIX for Dummies Questions & Answers

Copy dir/file from one place to another.

Hello all. I'm not getting the hang of Paths. I have a dir w/files that I want to copy to another dir. Right now I am in the "source" directory. I want to copy it to Ch7. "cp -r source Ch7". Ch7 was already created. 1st msg.: cannot stat `source`: No such file or dir. I typed pwd & got... (3 Replies)
Discussion started by: Ccccc
3 Replies

4. UNIX for Dummies Questions & Answers

using gsed with cp to sort files in directory - every N file copy to new place

Hi all, I'm having a problem with some basic piping issues... I have been able to get in a directory and ls | gsed in order to list every N file for instance: ls | gsed -n '2~5p' The thing is I want to be able to copy the output files to a new directory. Basically directory /all has a... (4 Replies)
Discussion started by: dgoss
4 Replies

5. Shell Programming and Scripting

Compare Field in Current Line with Field in Previous

Hi Guys I have the following file Essentially, I am trying to find the right awk/sed syntax in order to produce the following 3 distinct files from the file above: Basically, I want to print the lines of the file as long as the second field of the current line is equal to the... (9 Replies)
Discussion started by: moutaye
9 Replies

6. Shell Programming and Scripting

How to update field value in place?

Dear all: I have a file: 1:00 2:abc 3:12asweand I ran the following awk script on this file: #!/usr/bin/awk -f { i= 1; while(i<=NF) { $i=substr($i, 1, index($i, ":")-1); i++ } }I am expecting the file would become (after running... (7 Replies)
Discussion started by: littlewenwen
7 Replies

7. Shell Programming and Scripting

awk to place value at 24 field in a flat file issue

I am trying to add 0393 value at 24th feild using the below command, but its adding at all the lines including header and trailer Input file: ZHV|2657|D0217001|T|TXU|Z|PAN|20131112000552||||OPER| 754|52479| 492|489|SP40|1014570286334|20131111|20131201|14355334|CHAMELON... (1 Reply)
Discussion started by: Aditya_001
1 Replies

8. Shell Programming and Scripting

Add line in exact place

I have one big XML file which contains information about 100 jobs,"JOB JOBISN=" indicates that is a job so where ever tag starts with "JOB JOBISN=" then i need to add below highlighted line between "<INCOND NAME" and "<OUTCOND NAME" for all jobs.like this i want to add below highlighted line for... (7 Replies)
Discussion started by: katakamvivek
7 Replies

9. Red Hat

Remove new line for a particular place

Hello All, I have a text file which gets uploaded to tables using shells script. However before running that script I need to alter it, like in the below I have to firstly find the word 1234 and remove the new line from end of it. 1234,5678,fasfasasfsadf abc changes to... (11 Replies)
Discussion started by: Sandeep_sandy
11 Replies

10. Shell Programming and Scripting

Command/script to match a field and print the next field of each line in a file.

Hello, I have a text file in the below format: Source Destination State Lag Status CQA02W2K12pl:D:\CAQA ... (10 Replies)
Discussion started by: pocodot
10 Replies
scnhdr(5)							File Formats Manual							 scnhdr(5)

Name
       scnhdr - section header for a MIPS object file

Syntax
       #include < scnhdr.h>

Description
       Every  MIPS  object file has a table of section headers that specify the layout of the data in the file.  Each section that is in an object
       file has its own header.  The C structure appears as follows:
       struct scnhdr
       {
       char	       s_name[8];    /* section name */
       long	       s_paddr;      /* physical address, aliased s_nlib */
       long	       s_vaddr;      /* virtual address */
       long	       s_size;	     /* section size */
       long	       s_scnptr;     /* file ptr to raw data for section */
       long	       s_relptr;     /* file ptr to relocation */
       long	       s_lnnoptr;    /* file ptr to gp table */
       unsigned short  s_nreloc;     /* number of relocation entries */
       unsigned short  s_nlnno;      /* number of gp table entries */
       long	       s_flags;      /* flags */
       };

       File pointers are byte offsets into the file; they can be used as the offset in a call to FSEEK (see If a section is initialized, the  file
       contains  the  actual bytes.  An uninitialized section is somewhat different.  It has a size, symbols defined in it, and symbols that refer
       to it.  It cannot have relocation entries or data.  Consequently, an uninitialized section does not contain data in the	object	file,  and
       the values for s_scnptr, s_relptr, and s_nreloc are zero.

       The entries that refer to line numbers (s_lnnoptr and s_nlnno) are not used for line numbers on MIPS machines.  See the header file for the
       entries to get to the line number table.  The entries that were for line numbers in the section header are  used  for  gp  tables  on  MIPS
       machines.

       The  number of relocation entries for a section is found in the s_nreloc field of the section header.  This field is a C language short and
       can overflow with large objects.  If this field overflows, the section header s_flags field has the S_NRELOC_OVFL bit set.  In  this  case,
       the  true number of relocation entries is found in the r_vaddr field of the first relocation entry for that section.  That relocation entry
       has a type of R_ABS; thus, it is ignored when the relocation takes place.

       The gp table gives the section size corresponding to each applicable value of the compiler option  num  (always	including  0),	sorted	by
       smallest  size  first. It is pointed to by the s_lnnoptr field in the section header and its number of entries (including the header) is in
       the s_nlnno field in the section header.  This table only needs to exist for the .sdata and .sbss sections.  If a small	section  does  not
       exist,  then  the  gp  table  for it is attached to the corresponding large section so the information still gets to the link editor, The C
       union for the gp table follows:
       union gp_table
       {
       struct {
	       long    current_g_value;    /* actual value */
	       long    unused;
       } header;
       struct {
	       long    g_value; 	   /* hypothetical value */
	       long    bytes;		   /* section size corresponding
					      to hypothetical value */
       } entry;
       };

       Each gp table has one header structure that contains the actual value of the num option used to produce the object  file.   An  entry  must
       exist for every num -G num option.  The applicable values are all the sizes of the data items in that section.

       For  .lib  sections,  the  number  of shared libraries is in the s_nlib field (an alias to s_paddr).  The .lib section is made up of s_nlib
       descriptions of shared libraries.  Each description of a shared library is a libscn structure followed by  the  path  name  to  the  shared
       library.  The C structure appears here and is defined in scnhdr.h :
       struct libscn
       {
       long    size;	    /* size of this entry (including target name) */
       long    offset;	    /* offset from start of entry to target name */
       long    tsize;	    /* text size in bytes, padded to DW boundary */
       long    dsize;	    /* initialized data size */
       long    bsize;	    /* uninitialized data */
       long    text_start;  /* base of text used for this library */
       long    data_start;  /* base of data used for this library */
       long    bss_start;   /* base of bss used for this library */
       /* pathname of target shared library */
       };

See Also
       ld(1), fseek(3s), a.out(5), reloc(5)

								       RISC								 scnhdr(5)
All times are GMT -4. The time now is 04:26 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy