Sponsored Content
Top Forums Shell Programming and Scripting Shell script to merge and delete lines Post 303026623 by MadeInGermany on Friday 30th of November 2018 03:11:18 PM
Old 11-30-2018
This looks like a continuation of your earlier thread in September (rather than homework/coursework).
Here is an awk script that does a merge like you want:
Code:
#!/bin/sh
awk '
$1=="}" { bl-- }
bl>0 {
  # we are within a { } frame
  if ($1=="EqName") {
    eqname=$0
  } else if ($1=="Id") {
    id=$0
  } else {
    # ORS is a newline
    key=(eqname ORS id)
    if (key in store) {
      # append string
      store[key]=(store[key] ORS $0)
    } else {
      # new string
      store[key]=$0
      # enforce the original order with a number-indexed array
      ind[++cnt]=key
    }
  }
}
$1=="{" { bl++ }
END {
  # walk through the number-indexed array
  # "for (key in store)" would be a random order
  for (c=1; c<=cnt; c++) {
    key=ind[c]
    print "POLY_STATS"
    print "{"
    print key
    print store[key]
    print "}"
  }
}
' file

The { } frame and the text outside are hard-coded in print statements.
This User Gave Thanks to MadeInGermany For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

shell script to merge files

Can anybody help me out with this problem " a shell program that takes one or any number of file names as input; sorts the lines of each file in ascending order and displays the non blank lines of each sorted file and merge them as one combined sorted file. The program generates an error... (1 Reply)
Discussion started by: arya
1 Replies

2. Shell Programming and Scripting

Need Shell Script to delete lines in a file

Hi All, I have a file with 3 columns (Bank Name, Account Number and Amount). My requirement, I need to delete lines using Unix Shell script: 1. Which are having Alphanumeric characters in Account Number (eg. Line3). 2. Which are having 0.00 in amount. (eg. Line4) 3. And also I need to... (4 Replies)
Discussion started by: phani333
4 Replies

3. Shell Programming and Scripting

Help with merge Shell Script

I have a file test.log The content of the file is : a:R_yz:1 a:R_cd:2 a:F_bc:0 a:F_xx:3 b:R_dg:5 b:R_gf:1 b:F_fd:4 I want the output is : :a R_yz 1 3 3 : R_cd 2 : F_bc 0 : F_xx 3 :b R_dg 5 6 4 : R_gf 1 : F_fd 4 (8 Replies)
Discussion started by: mnmonu
8 Replies

4. Shell Programming and Scripting

remove blank lines and merge lines in shell

Hi, I'm not a expert in shell programming, so i've come here to take help from u gurus. I'm trying to tailor a csv file that i got to make it work for the LOAD FROM command. I've a datatable csv of the below format - --in file format xx,xx,xx ,xx , , , , ,,xx, xxxx,, ,, xxx,... (11 Replies)
Discussion started by: dvah
11 Replies

5. Shell Programming and Scripting

How to select/delete some lines in shell?

I need to delete half(approx) the file or select half the file by existence of some character My file looks like 1 2 3 4 . . . 50 . . 100I need to select only 50 to rest of the file or needs to delete the file upto 50. Please help me out.. (6 Replies)
Discussion started by: SujeethP
6 Replies

6. UNIX for Dummies Questions & Answers

How to delete lines above a certin line number in bash shell

Hi, I have written a script that returns the line number of the pattern i want and i stored the line number in a variable(getlinenumber).Now i want to delete all the lines in a file above this line number which is stored in a variable. i am using sed '1,$getlinenumberd' > file1.txt which is... (2 Replies)
Discussion started by: learninguser235
2 Replies

7. Shell Programming and Scripting

How to merge Expect script inside shell script?

Hi I have two scripts one is Expect and other is shell. I want to merge Expect code in to Shell script so that i can run it using only one script. Can somebody help me out ? Order to execute: Run Expect_install.sh first and then when installation completes run runTests.sh shell script. ... (1 Reply)
Discussion started by: ashish_neekhra
1 Replies

8. Shell Programming and Scripting

Bash/shell merge similar lines

Hello, I've been working on a bash script to parse through firewall logs (cisco). I'm nearing the end and have a dilemma. My data looks as such (actual data is several gigs worth of logs - without the headers): sourceIP destinationIP destinationProtocol destinationPort 1.1.1.1 2.2.2.2 ... (2 Replies)
Discussion started by: umang2382
2 Replies

9. Shell Programming and Scripting

Delete all CONSECUTIVE text lines from file shell scripting

Hi I have a text file like below. THe content of the text will vary. Entire text file have four consecutive lines followed with blank line. I want to delete the occurrence of the two consicutive lines in the text file. I don't have pattern to match and delete. Just i need to delete all... (5 Replies)
Discussion started by: RJSKR28
5 Replies

10. UNIX for Beginners Questions & Answers

Merge multi-lines into one single line using shell script or Linux command

Hi, Can anyone help me for merge the following multi-line log which beginning with a " and line ending with ": into one line. *****Original Log***** 087;2008-12-06;084403;"mc;;SYHLR6AP1D\LNZW;AD-703;1;12475;SYHLR6AP1B;1.1.1.1;0000000062;HGPDI:MSISDN=12345678,APNID=1,EQOSID=365;... (3 Replies)
Discussion started by: rajeshlinux2010
3 Replies
dbm(3)							     Library Functions Manual							    dbm(3)

NAME
dbminit, fetch, store, delete, firstkey, nextkey, forder - Database subroutines LIBRARY
DBM Library (libdbm.a) SYNOPSIS
#include <dbm.h> typedef struct { char *dptr; int dsize; } datum; int dbminit( char *file ); datum fetch( datum key ); int store( datum key, datum content ); int delete( datum key ); datum firstkey( void ); datum nextkey( datum key ); long forder( datum key ); PARAMETERS
Specifies the database file. Specifies the key. Specifies a value associated with the key parameter. DESCRIPTION
The dbminit(), fetch(), store(), delete(), firstkey(), nextkey(), and forder() functions maintain key/content pairs in a database. They are obtained with the -ldbm loader option. The dbm library is provided only for backwards compatibility, having been obsoleted by the ndbm functions in libc. See the manual page for ndbm for more information. The dbminit(), fetch(), store(), delete(), firstkey(), nextkey(), and forder() functions handle very large databases (up to a billion blocks) and access a keyed item in one or two file system accesses. Arbitrary binary data, as well as normal ASCII strings, are allowed. The database is stored in two files. One file is a directory containing a bit map and has .dir as its suffix. The second file contains all data and has .pag as its suffix. Before a database can be accessed, it must be opened by the dbminit() function. At the time that dbminit() is called, the file.dir and file.pag files must exist. (An empty database is created by creating zero-length .dir and .pag files.) Once open, the data stored under a key is accessed by the fetch() function and data is placed under a key by the store() function. A key (and its associated contents) is deleted by the delete() function. A linear pass through all keys in a database may be made by use of the firstkey() and nextkey() functions. The firstkey() function returns the first key in the database. With any key, the nextkey() function returns the next key in the database. The following code traverses the database: for (key = firstkey(); key.dptr != NULL; key = nex- tkey(key)) RETURN VALUES
Upon successful completion, the functions that return an int return 0 (zero). Otherwise, a negative number is returned. The functions that return a datum indicate errors with a null (0) dptr . RELATED INFORMATION
Functions: ndbm(3) delim off dbm(3)
All times are GMT -4. The time now is 10:53 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy