Parsing text file and feeding it into an executable


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Parsing text file and feeding it into an executable
# 1  
Old 03-29-2012
Question Parsing text file and feeding it into an executable

Hello, everyone. I am working wtihin AIX 5.3, and I need to do the following:

read the each line of file BASE.txt
do XK {line contents}
if XK's output begins with "BASE", then append line contents to file "output.txt"
continue until end of file

Here is what I tried(unsuccessfuly):

Code:
for i in `cat BASE.txt`
do
if XK $i | grep BASE
then cat $i >> output.txt
done

Basically, I need to end up with a list of entries from the "BASE.txt" file that returned 'BASE' as the first four characters, when used as an argument in the "XK" executable. The script I have returns only this:


ksh: syntax error: `done' unexpected

I know I am making this too difficult. Can you guys please help?
# 2  
Old 03-29-2012
Quote:
Originally Posted by Mordaris
Hello, everyone. I am working wtihin AIX 5.3, and I need to do the following:

read the each line of file BASE.txt
do XK {line contents}
if XK's output begins with "BASE", then append line contents to file "output.txt"
continue until end of file

Here is what I tried(unsuccessfuly):

Code:
for i in `cat BASE.txt`
do
if XK $i | grep BASE
then cat $i >> output.txt
done

Basically, I need to end up with a list of entries from the "BASE.txt" file that returned 'BASE' as the first four characters, when used as an argument in the "XK" executable. The script I have returns only this:


ksh: syntax error: `done' unexpected

I know I am making this too difficult. Can you guys please help?
You are missing a fi , which is the end of a if block , i guess .
Code:
for i in `cat BASE.txt`
do
if XK $i | grep BASE
then cat $i >> output.txt
fi
done

# 3  
Old 03-29-2012
Power

Quote:
Originally Posted by codemaniac
You are missing a fi , which is the end of a if block , i guess .
Code:
for i in `cat BASE.txt`
do
if XK $i | grep BASE
then cat $i >> output.txt
fi
done

Alas, no. All this does is list the grep lines. It doesn't create the "output.txt" file, listing only the lines from "BASE.txt" that match the test. However, you got me a lot further. Thank you.

Here is what I trying to do:
Code:
NEXT LINE IN BASE.txt ACTION     RESULT            ACTION
abcd                  XK abcd    BASE not found    append to output.txt
defg                  XK defg    defg present      none
hijk                  XK hijk    BASE not found    append to output.txt
lmno                  XK lmno    lmno present      none
pqrs                  XK pqrs    pqrs present      none
tuvw                  XK tuvw    BASE not found    append to output.txt


Last edited by Mordaris; 03-29-2012 at 02:06 PM.. Reason: Clarification
# 4  
Old 03-29-2012
Beware of useless use of cat. Try this (untested):
Code:
#!/bin/ksh

# define constant variables.  If a file name ever has to change, you'll have
# to change it here only.
typeset -r INPUTFILE=BASE.txt
typeset -r OUTPUTFILE=output.txt
typeset -r MATCH_TEXT=BASE

# Create or zero out the OUTPUTFILE if it already exists.
> $OUTPUTFILE

# Read INPUTFILE a line at a time.  The line read goes into the variable "line".
while read line
do
  # Call XK passing the line read in and save the output in xk_out.
  xk_out=$(XK $line)

  # If the first 4 characters of the output = $MATCH_TEXT, append the entire line read to
  # OUTPUTFILE.
  if [[ ${xk_out:0:4} == $MATCH_TEXT ]]; then
    print $line >> $OUTPUTFILE
  fi
done < $INPUTFILE

exit 0

# 5  
Old 03-29-2012
Code:
while read i
do
  if XK $i | grep BASE
  then
    echo $i >> output.txt
  fi
done < BASE.txt

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Parsing text file

Hi Friends, I am back for the second round today - :D My input text file is this way Home friends friendship meter Tools Mirrors Downloads My Data About Us Help My own results BLAT Search Results ACTIONS QUERY SCORE START END QSIZE IDENTITY CHRO STRAND ... (7 Replies)
Discussion started by: jacobs.smith
7 Replies

2. Shell Programming and Scripting

Parsing text file

I'm totally stumped with how to handle this huge text file I'm trying to deal with. I really need some help! Here is what is looks like: ab1ba67c331a3d731396322fad8dd71a3b627f89359827697645c806091c40b9 0.2 812a3c3684310045f1cb3157bf5eebc4379804e98c82b56f3944564e7bf5dab5 0.6 0.6... (3 Replies)
Discussion started by: comp8765
3 Replies

3. Programming

Parsing a Text file using C++

I was trying to parse the text file, which will looks like this ###XYZABC#### ############ int = 4 char = 1 float = 1 . . ############ like this my text file will contains lots of entries and I need to store these entries in the map eg. map.first = int and map.second = 4 same way I... (5 Replies)
Discussion started by: agupta2
5 Replies

4. Shell Programming and Scripting

Need help parsing a text file

I have a text file: router1#sh ip blah blah | incl --- Gi2/8 10.60.4.181 --- 10.60.123.175 11 0000 0000 355K Gi2/8 10.60.83.28 --- 224.10.10.26 11 F9FF 3840 154K Gi2/8 10.60.83.198 --- ... (1 Reply)
Discussion started by: streetfighter2
1 Replies

5. Shell Programming and Scripting

Log file text parsing

I'm new to scripting and was wondering if there was a way to accomplish what I want below using shell script(s). If there is a log file as follows, where the id is the unique id of a process, with the timestamp of when the process began and completed displayed, would it be possible to find the... (3 Replies)
Discussion started by: dizydolly
3 Replies

6. UNIX for Dummies Questions & Answers

Help parsing and replacing text with file name

Hi everyone, I'm having trouble figuring this one out. I have ~100 *.fa files with multiple lines of fasta sequences like this: file1.fa >xyzsequence atcatgcacac...... ataccgagagg..... atataccagag..... >abcsequence atgagatatat..... acacacggd..... atcgaacac.... agttccagat.... The... (2 Replies)
Discussion started by: mycoguy
2 Replies

7. UNIX for Advanced & Expert Users

How can i read a non text file in unix - ELF-64 executable object file - IA64

The binary file is ELF-64 executable object file - IA64. How i know that the source is Is there any comamnd in unix i can read these kind of files or use a thirty party software? Thanks for your help (8 Replies)
Discussion started by: alexcol
8 Replies

8. Shell Programming and Scripting

Parsing text from file

Any ideas? 1)loop through text file 2)extract everything between SOL and EOL 3)output files, for example: 123.txt and 124.txt for the file below So far I have: sed -n "/SOL/,/EOL/{p;/EOL/q;}" file Here is an example of my text file. SOL-123.go something goes here something goes... (0 Replies)
Discussion started by: ndnkyd
0 Replies

9. Shell Programming and Scripting

Need help in parsing text file contents

Hi, I need some help in extracting the Exception block between the lines 21 Feb 01:18:54:146 ERROR com.orbits.frameworks.integrationframework.ValidationException - Caught exception in validateRequest() (PID=565584) and 21 Feb 01:18:55:149 INFO ... (0 Replies)
Discussion started by: Alecs
0 Replies

10. Shell Programming and Scripting

Text File Parsing

Hey Guys.I am a newbie on Bash Shell Scripting and Perl.And I have a question about file parsing. I have a log file which contains reports about a communication device.I need to take some of the reports from the log file.Its hard to explain the issue.but shortly I can say that, the reports has a... (2 Replies)
Discussion started by: Djlethal
2 Replies
Login or Register to Ask a Question