Sponsored Content
Top Forums Shell Programming and Scripting Append text from one file to another based on a search from the end of a document Post 302464646 by marcozd on Wednesday 20th of October 2010 04:10:07 PM
Old 10-20-2010
Question Append text from one file to another based on a search from the end of a document

Hi all,

I have output files that are all text files with various different extensions.

So, if I submit the input file "job_name.inp", when it finishes I get an output file "job_name.dat". A typical input file looks something like this:

Code:
 $CONTRL SCFTYP=RHF RUNTYP=ENERGY MAXIT=199 MULT=1 NOSYM=1
  $END
 $SYSTEM TIMLIM=2800 MWORDS=20 MEMDDI=50 PARALL=.TRUE. $END
 $GUESS GUESS=HCORE $END
 $SCF DIRSCF=.TRUE. FDIFF=.f. DIIS=.T. SOSCF=.F. DAMP=.T. $END
 $STATPT OPTTOL=0.00001 NSTEP=500  $END
 $FORCE TEMP=298.15 PURIFY=.t. PROJCT=.t. $END
 $DATA
 MoX6
C1
MOLYBDENUM 42.0     -0.0064896473      0.0000000000     -0.0299719236
S   3
  1      2.3610000             -0.9121760        
  2      1.3090000              1.1477453        
  3      0.4500000              0.6097109        
S   4
  1      2.3610000              0.8139259        
  2      1.3090000             -1.1360084        
  3      0.4500000             -1.1611592        
  4      0.1681000              1.0064786        
S   1
  1      0.0423000              1.0000000        
P   3
  1      4.8950000             -0.0908258        
  2      1.0440000              0.7042899        
  3      0.3877000              0.3973179        
P   2
  1      0.4995000             -0.1081945        
  2      0.0780000              1.0368093        
P   1
  1      0.0247000              1.0000000        
D   3
  1      2.9930000              0.0527063        
  2      1.0630000              0.5003907        
  3      0.3721000              0.5794024        
D   1
  1      0.1178000              1.0000000        
 
 $END

To run other types of jobs, I need to extract and append a portion of text that is in the "job_name.dat" file directly at the end of the text in the "job_name.inp" file directly below the "$END".

The text that needs to be appended is sandwiched between a line that contains only "$HESS" (which indicates the begining of the block of text that needs to be appended) and a line that contains only "$END".

Here is a shortened version of what it looks like:

Code:
 $HESS
ENERGY IS     -564.2186882597 E(NUC) IS      515.5174532336
 1  1 2.81829118E-01 1.96516215E-02 4.20602780E-02-4.88781528E-02 1.17369706E-02
 1  2-2.64287926E-02-7.58478386E-02-2.07409567E-03-1.79893671E-02-4.10847462E-02
 1  3 4.12539079E-03-1.47014988E-03-9.06341578E-02-1.93280378E-02 1.03405906E-02
 1  4-1.80442057E-02-2.76602476E-02 4.37651343E-03 1.11643572E-02 3.21356156E-03
.
.
.
$END

The trouble is that there are a number of these blocks of text that are delineated by "$HESS" and "$END".

The number of "$HESS" blocks of text varies between files unfortunately. The correct block is the very last one in the "job_input.dat" file.

Is there a way to use maybe awk for this but search backwards from the end of the document up?

Thanks in advance for any help with this!
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Append a field to the end of each line of a file based on searching another file.

Hi All, I have two comma separated value(CSV) files, say FileA and FileB. The contents looks like that shown below. FileA EmpNo,Name,Age,Sex, 1000,ABC,23,M, 1001,DES,24,F, ... (2 Replies)
Discussion started by: ultimate
2 Replies

2. Shell Programming and Scripting

Append text at end of the first line in a file

Hi I need to append some text @ end of the first line in a file. like myfile.txt list = a,b,c list.a=some.. I give the arg "d" . now it append at end of first line list=a,b,c,d list.a=some... Please help me out this (7 Replies)
Discussion started by: catgovind
7 Replies

3. Shell Programming and Scripting

search directory-find files-append at end of line

Hi, I have a command "get_data" with some parameters in few *.text files of a directory. I want to first find those files that contain this command and then append the following parameter to the end of the command. example of an entry in the file :- get_data -x -m50 /etc/web/getid this... (1 Reply)
Discussion started by: PrasannaKS
1 Replies

4. Shell Programming and Scripting

append some text message at the end of the file

Hi All, Please tell me how to append some text message at the end of the file. "File too large to view" example: xyz.log contains hhhhhhhhhhh hhhhhhjjjjjjjjj jjjjjjjjjjjjjjjjjjjjjj "File too large to view" Please advice (3 Replies)
Discussion started by: rajeshorpu
3 Replies

5. UNIX for Dummies Questions & Answers

How can I append a text at end of file after displaying the file

I have a file "sample.txt" with the content as below: Hi This is a Sample Text. I need a single command using cat which serve the following purpose. 1.display the contents of sample.txt 2.append some text to it 3. and then exit But, all should be served by a sinle command.:confused: (1 Reply)
Discussion started by: g.ashok
1 Replies

6. Shell Programming and Scripting

Append the text file with comma at the end of every word

Hi folks, Using shell, I am trying the append comma to every line of text. the requirement is like, I have to open the txt file in unix and read line by line and should add comma at the end of every word to make it single line txt file ------- abc@gmail.com bcd@gmail.com... (7 Replies)
Discussion started by: giridhar276
7 Replies

7. Shell Programming and Scripting

Search for a string, then append character to end of that line only

I have 2 files that I am working with $ cat file1 server1 server3 server5 server6 server8 $ cat file2 server1;Solaris; server2; SLES; server3;Linux; server4; Solaris; server5;SLES; server6;SLES; server7;Solaris; server8;Linux; (1 Reply)
Discussion started by: snoman1
1 Replies

8. Shell Programming and Scripting

To append new data at the end of each line based on substring of last column

Hi guys, I need to append new data at the end of each line of the files. This new data is based on substring (3rd fields) of last column. Input file xxx.csv: U1234|1-5X|orange|1-5X|Act|1-5X|0.1 /sac/orange 12345 0 U5678|1-7X|grape|1-7X|Act|1-7X|0.1 /sac/grape 5678 0... (5 Replies)
Discussion started by: null7
5 Replies

9. Shell Programming and Scripting

sed - go to file and search a part and set at the end text

Hello, i hope the titel is okay. I want to edit a line in /etc/arno-iptables-firewall/firewall.conf So the Line can contains: OPEN_TCP="436, 25, 80, 110, 143, 443, 465, 587, 993, 995, 21, 20" i want to search in this line: OPEN_TCP="*, *, 80, *, *, 443, *, *, *, *" and i want to... (11 Replies)
Discussion started by: tJAdASwIRDESSEI
11 Replies

10. UNIX for Beginners Questions & Answers

UNIX script to append multiple text files into one file based on pattern present in filaname

Hi All-I am new to Unix , I need to write a script. Can someone help me with a requirement where I have list of files in a directory, I want to Merge the files if a pattern of string matches in filenames? AAAL_555A_ORANGE1_F190404.TXT AAAL_555A_ORANGE2_F190404.TXT AAAL_555A_ORANGE3_F190404.TXT... (6 Replies)
Discussion started by: Shankar455
6 Replies
QUEUE_MOVER(1)															    QUEUE_MOVER(1)

NAME
queue_mover - PgQ consumer that copies data from one queue to another. SYNOPSIS
queue_mover.py [switches] config.ini DESCRIPTION
queue_mover is PgQ consumer that transports events from source queue into target queue. One use case is when events are produced in several databases then queue_mover is used to consolidate these events into single queue that can then be processed by consumers who need to handle theses events. For example in case of patitioned databases it's convenient to move events from each partition into one central queue database and then process them there. That way configuration and dependancies of partiton databases are simpler and more robust. Another use case is to move events from OLTP database to batch processing server. Transactionality: events will be inserted as one transaction on target side. That means only batch_id needs to be tracked on target side. QUICK-START Basic PgQ setup and usage can be summarized by the following steps: 1. PgQ must be installed both in source and target databases. See pgqadm man page for details. 2. Target database must also have pgq_ext schema installed. It is used to keep sync between two databases. 3. Create a queue_mover configuration file, say qmover_sourceq_to_targetdb.ini 4. create source and target queues $ pgqadm.py sourcedb_ticker.ini create <srcqueue> $ pgqadm.py targetdb_ticker.ini create <dstqueue> 5. launch queue mover in daemon mode $ queue_mover.py -d qmover_sourceq_to_targetdb.ini 6. start producing and consuming events CONFIG
Common configuration parameters job_name Name for particulat job the script does. Script will log under this name to logdb/logserver. The name is also used as default for PgQ consumer name. It should be unique. pidfile Location for pid file. If not given, script is disallowed to daemonize. logfile Location for log file. loop_delay If continuisly running process, how long to sleep after each work loop, in seconds. Default: 1. connection_lifetime Close and reconnect older database connections. log_count Number of log files to keep. Default: 3 log_size Max size for one log file. File is rotated if max size is reached. Default: 10485760 (10M) use_skylog If set, search for [./skylog.ini, ~/.skylog.ini, /etc/skylog.ini]. If found then the file is used as config file for Pythons logging module. It allows setting up fully customizable logging setup. Common PgQ consumer parameters pgq_queue_name Queue name to attach to. No default. pgq_consumer_id Consumers ID to use when registering. Default: %(job_name)s queue_mover parameters src_db Source database. dst_db Target database. dst_queue_name Target queue name. Example config file [queue_mover] job_name = eventlog_to_target_mover src_db = dbname=sourcedb dst_db = dbname=targetdb pgq_queue_name = eventlog dst_queue_name = copy_of_eventlog pidfile = log/%(job_name)s.pid logfile = pid/%(job_name)s.log COMMAND LINE SWITCHES
Following switches are common to all skytools.DBScript-based Python programs. -h, --help show help message and exit -q, --quiet make program silent -v, --verbose make program more verbose -d, --daemon make program go background Following switches are used to control already running process. The pidfile is read from config then signal is sent to process id specified there. -r, --reload reload config (send SIGHUP) -s, --stop stop program safely (send SIGINT) -k, --kill kill program immidiately (send SIGTERM) BUGS
Event ID is not kept on target side. If needed is can be kept, then event_id seq at target side need to be increased by hand to inform ticker about new events. 03/13/2012 QUEUE_MOVER(1)
All times are GMT -4. The time now is 05:46 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy