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
TAU_PROFILE_SET_CONT(3) 				      TAU Instrumentation API					   TAU_PROFILE_SET_CONT(3)

NAME
TAU_PROFILE_SET_CONTEXT - Informs the measurement system of the context id SYNOPSIS
C/C++: TAU_PROFILE_SET_CONTEXT(int context); Fortran: TAU_PROFILE_SET_CONTEXT(integer context); DESCRIPTION
The TAU_PROFILE_SET_CONTEXT macro sets the context identifier of the executing task for profiling and tracing. Tasks are identified using context, context and thread ids. The profile data files generated will accordingly be named profile.<context>.<context>.<thread>. Note that it is not necessary to call TAU_PROFILE_SET_CONTEXT when using the TAU MPI wrapper library. EXAMPLE
C/C++ : int main (int argc, char **argv) { int ret, i; pthread_attr_t attr; pthread_t tid; TAU_PROFILE_TIMER(tautimer,"main()", "int (int, char **)", TAU_DEFAULT); TAU_PROFILE_START(tautimer); TAU_PROFILE_INIT(argc, argv); TAU_PROFILE_SET_NODE(0); TAU_PROFILE_SET_CONTEXT(1); /* ... */ TAU_PROFILE_STOP(tautimer); return 0; } Fortran : PROGRAM SUM_OF_CUBES integer profiler(2) / 0, 0 / save profiler INTEGER :: H, T, U call TAU_PROFILE_INIT() call TAU_PROFILE_TIMER(profiler, 'PROGRAM SUM_OF_CUBES') call TAU_PROFILE_START(profiler) call TAU_PROFILE_SET_NODE(0) call TAU_PROFILE_SET_CONTEXT(1) ! This program prints all 3-digit numbers that ! equal the sum of the cubes of their digits. DO H = 1, 9 DO T = 0, 9 DO U = 0, 9 IF (100*H + 10*T + U == H**3 + T**3 + U**3) THEN PRINT "(3I1)", H, T, U ENDIF END DO END DO END DO call TAU_PROFILE_STOP(profiler) END PROGRAM SUM_OF_CUBES SEE ALSO
TAU_PROFILE_SET_NODE(3) 08/31/2005 TAU_PROFILE_SET_CONT(3)
All times are GMT -4. The time now is 03:14 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy