11-17-2004
awk script
Current field length : 361 bytes
To the record , i am appending the filename and hard-coding batchid.
The record length has increased from 361 to 400 and since i will continue to get both files ie 361 and 400 length sizes
i want to write a program that can handle both of them.
To the new files i want to cut the string from 362 to 400 and append after the batch id and filename as shown below
Both Input and Output are fixed length files
Output File Layout
------------------
'1 - 361''filename''batch_id'
'1- 361''filename''batch_id''362-400'
Existing code
-------------
for file in /export/home/input/temp/abc[0-9][0-9].dat;do
nawk '/............B[HT]0/{print "HDR/TRLR " ctr++ " : " $0 ;next }
/............H10/{print $0 |" sed s/$/'`basename $file`BATCHID'/ >>/output/outfile.dat " } ' $file
done
New Code
--------
I am not sure if this logic is correct or i might have complicated it.Please suggest
for file in /export/home/input/temp/abc[0-9][0-9].dat;do
nawk '/............B[HT]0/{print "HDR/TRLR " ctr++ " : " $0 ;next }
/............H10/{bl = substr($0,1,361);el = substr($0,362); print bl '`basename $file`BATCHID' el >>/output/outfile.dat " } ' $file
Its treating bl '`basename $file`BATCHID' el >>/output/outfile.dat " as a string rather than as a variable.
Can we run a Unix command in awk program? coz replacing SED here is giving me all kinds of problems.
Please help
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi guys
I have a shell script that executes sql statemets and sends the output to a file.the script takes in parameters executes sql and sends the result to an output file.
#!/bin/sh
echo " $2 $3 $4 $5 $6 $7
isql -w400 -U$2 -S$5 -P$3 << xxx
use $4
go
print"**Changes to the table... (0 Replies)
Discussion started by: magikminox
0 Replies
2. Shell Programming and Scripting
Hello,
I have this awk script that I want to execute by passing parameters through a shell script.
I'm a little confused. This awk script removes duplicates from an input file.
Ok, so I have a .sh file called rem_dups.sh
#!/usr/bin/sh... (4 Replies)
Discussion started by: script_op2a
4 Replies
3. Shell Programming and Scripting
hi everyone
i am trying to do this
bash> cat abc.sh
deepak()
{
echo Deepak
}
deepak
bash>./abc.sh
Deepak
so it is giving me write simply i created a func and it worked
now i modified it like this way
bash> cat abc.sh (2 Replies)
Discussion started by: aishsimplesweet
2 Replies
4. Shell Programming and Scripting
This is the final first release of the dynamic menu generator for pekwm (WM).
#!/bin/bash
function param_val {
awk "/^${1}=/{gsub(/^${1}="'/,""); print; exit}' $2
}
echo "Dynamic {"
for CF in `ls -c1 /usr/share/applications/*.desktop`
do
name=$(param_val Name $CF)
... (3 Replies)
Discussion started by: alexscript
3 Replies
5. Shell Programming and Scripting
consider the script below
sh /opt/hqe/hqapi1-client-5.0.0/bin/hqapi.sh alert list --host=localhost --port=7443 --user=hqadmin --password=hqadmin --secure=true >/tmp/alerts.xml
awk -F'' '{for(i=1;i<=NF;i++){
if($i=="Alert id") {
if(id!="")
if(dt!=""){
cmd="sh someScript.sh... (2 Replies)
Discussion started by: vivek d r
2 Replies
6. Shell Programming and Scripting
I am getting the following error while passing parameter to a shell script called within awk script. Any idea what's causing this issue and how to ix it ? Thanks
sh: -c: line 0: syntax error near unexpected token `newline'
sh: -c: line 0: `./billdatecalc.sh ... (10 Replies)
Discussion started by: Sudhakar333
10 Replies
7. Post Here to Contact Site Administrators and Moderators
Variable I have in my shell script
diff=$1$2.diff
id=$2
new=new_$diff
echo "My id is $1"
echo "I want to sync for user account $id"
##awk command I am using is as below
cat $diff | awk -F'~' ''$2 == "$id"' {print $0}' > $new
I could see value of $id is not passing to the awk... (0 Replies)
Discussion started by: Ashunayak
0 Replies
8. UNIX for Dummies Questions & Answers
I have a shell script (.sh) and I want to pass a parameter value to the awk command but I am getting exception, please assist.
diff=$1$2.diff
id=$2 new=new_$diff
echo "My id is $1"
echo "I want to sync for user account $id"
##awk command I am using is as below
cat $diff |... (1 Reply)
Discussion started by: Sarita Behera
1 Replies
9. Shell Programming and Scripting
Hi
I have a text file (Input.txt) with two column entries separated by tab as given below:
aaa str1
bbb str2
cccccc str3
dddd str4
eee str3
ssss str2
sdf str3
hhh str1
fff str2
ccc str3
.....
.....
..... (1 Reply)
Discussion started by: my_Perl
1 Replies
10. UNIX for Beginners Questions & Answers
I'm trying to create a shell script that takes a awk script that I wrote and a filename as an argument. I was able to get that done but I'm having trouble figuring out how to keep the header of the output at the top but sort the rest of the rows alphabetically. This is what I have now but it is... (1 Reply)
Discussion started by: Eric7giants
1 Replies
geom(1) geom(1)
NAME
geom - analyzes a molecular geometry input in Cartesian coordinates.
DESCRIPTION
The program geom reads a set of Cartesian coordinates and determines from them the bond distances (Bohr and angstrom), bond angles, tor-
sional angles, out-of-plane angles (optional), moments of inertia, and rotational constants.
FILES REQUIRED
input.dat - Input file
and one of the following:
geom.dat - geometry file
file11.dat - PSI-format geometry/gradient file
FILES GENERATED
geom.out - file containing the analysis
INPUT OPTIONS
The geom program has the following options:
-h Print help information (these options).
-aces [filename]
Read the input in an ACES output format, with each line consisting of atomic symbol, atomic number, and Cartesian coordinates (in
Bohr). The optional argument is the name of the geometry input file, which defaults to geom.dat.
-qchem [filename]
Read the input in an QCHEM output format, with each line consisting of the atom number, the atomic symbol, and Cartesian coordinates
(in Angstroms). The optional argument is the name of the geometry input file, which defaults to geom.dat.
-xyz [filename]
Read the input in an XYZ output format. The first line contains the number of atoms and the second line is a comment line. Subse-
quent lines each contain the atomic symbol and Cartesian X Y and Z coordinates (in Angstroms). The optional argument is the name of
the geometry input file, which defaults to geom.dat.
-oop Print out-of-plane angles, where the angle a-b-c-d is defined as the angle formed by the vector a-d and the plane defined by atoms
b, c, and d.
DO_OOP = boolean
Same as command-line switch -oop described above.
ISOTOPES = matrix of reals/strings
Used to specify masses to be used in the calculation of the center of mass and rotational constants. One array is provided for each
isotopomer to be calculated. The arrays can mix floating point numbers with strings which designate isotopes. If this array is not
given and file11.dat is present, then the masses will be obtained by converting the atomic numbers in file11. If masses are not
given by ISOTOPES or by file11, then no mass-related quantities will be calculated.
-g [filename]
Read Cartesian coordinates from a file other than file11.dat. If a filename is not given, the default is geom.dat. The alternative
file is assumed to be in a format similar to that of PSI's geom.dat. Since such files do not contain atomic numbers, the moments of
inertia and rotational constants are not calculated if this option is used.
READ_GEOM = boolean
This option in input.dat tells geom to read the geometry from geom.dat in the PSI geom.dat format.
-a Print parameters for all pair distances.
PRINT_ALL_DIST = boolean
Same as -a flag described above.
-d distance
Only print parameters involving pairs of atoms which are less than distance bohr apart (default value is 4.0 bohr).
PRINT_DISTANCE = value
Same as -d flag described above.
-angstrom
The input coordinates are in angstroms, not bohr.
ANGSTROM = boolean
If TRUE, the input coordinates are in angstroms instead of bohr. The default is FALSE.
The following example is for calculating the geometrical information for water with several different isotopes. The geometry is
read from geom.dat rather than from file11.dat.
geom: (
read_geom = true
isotopes = (
(O H H)
(O D D)
(O18 1.007825 1.007825)
) )
5 June, 1998 geom(1)