09-20-2002
Ok. To answer the second part first. To strip out carriage returns from your input file do:
awk '{printf("%s"), $0}' filename > newfile
The awk command should be standard across most Unix O/S.
In HP-UX use the functions: regcomp, regexec. These functions allow you to process regular expressions. In other words you may search a string for a pattern (like the ones you have described).
Sorry I don't have time to explain these functions in depth or write you a little test program, but regexec will point you to where it finds the first match in your line (in a pointer). If you called the function again it will return a pointer to the next pattern in your string. To work out the number of characters between each expression found you would subtract the first pointer value from the second pointer value and so on ...
I do know that you may have portability issues with the regexec and regcomp functions. When my trainee wrote a program and ported it to windows he found that a different library with different function names was required. To make matters worse the windows functions had different rules for regular expressions.
I would not be surprised if you encountered similiar issues between different flavours of Unix.
If portability is an issue you may have to write your own parsing algorithms ...
Sorry I can't be more help but I have run out of time ...
9 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
How do I Ftp, and rename multiple files in one unix script. I have to send it with .tmp extension , then rename it to .txt after FTP is done . I need to do a Mass rename of more than 1 file in a shell script , Urgent help required. (1 Reply)
Discussion started by: Suppandi
1 Replies
2. UNIX for Dummies Questions & Answers
I have two files file1 and file2 as shown below:
file1:
name
nameabc
bcd
nameabcdefg
file2:
age
age1111
age2345
age6743
I have pasted one file on the other with the delimiter "|" and the resulttant file is:
name|age
nameabc|age1111
bcd|age2345
nameabcdefg|age6743 (6 Replies)
Discussion started by: udiptya
6 Replies
3. UNIX for Dummies Questions & Answers
Hello,
May I the right place if I need competencies to migrate DOS script into Unix platforme?
Thanks in advance
Thierry (9 Replies)
Discussion started by: tsconetti
9 Replies
4. Shell Programming and Scripting
the following simple scripts work fine on linux but fail on solaris:
#!/bin/bash
eval /usr/bin/time -f \'bt=\"%U + %S\"\' ./JUNK >> ./LOG 2>&1
cp ./LOG ./LOG_joe
LC_joe=`cat ./LOG | wc -l`
LC_joe=`echo $LC_joe-1|bc`
tail -1 ./LOG > ./tmp
head -$LC_joe ./LOG_joe > ./LOG
rm ./LOG_joe
... (1 Reply)
Discussion started by: joepareti
1 Replies
5. Shell Programming and Scripting
Hi,
I am writing a BASH shell script for a client. I am using BASH on a Macintosh Powerbook G4 running Leopard. My client will be using BASH on a PC running Ubuntu. My questions all revolve around making my script portable so that it will run on his machine.
- Do I need to get any other... (2 Replies)
Discussion started by: msb65
2 Replies
6. UNIX for Dummies Questions & Answers
Dear All,
I'm porting my scientific program from 32 to 64 bit system
(use gcc, CentOS) and feel myself absolutely confused
after reading general internet advices for that. Could you help me,
please.
The question is:
can I use "old style" on 64 bit:
--------
int * myIntArray;
... (3 Replies)
Discussion started by: German1234
3 Replies
7. Shell Programming and Scripting
The circumfrence of a circle is
#!/usr/bin/perl
print 2 * 3.141592654 * 12.50 \n"; # pi= 3.141592654
# r= 12.50
I need a simple program showing me all the steps..to modify the above to prompt for and accept a radius from the person running the... (3 Replies)
Discussion started by: Q2wert
3 Replies
8. Programming
I know it looks like a stupid question, but i really wanna know the reason.
Actually, i think it's because the c compiler will detect it as the end of file "EOF" of the program, but, am i wrong? because it compiles it anyway, but keep showing warnings like "no new line at the end of file".
I... (8 Replies)
Discussion started by: semash!
8 Replies
9. Shell Programming and Scripting
I have below code, i need to modify it, to search for files (*.php,*.css,*.html) in those directores which have 777 permission, how to modify this code. Because it is moving all files.
while true
do
sleep 60
DATE=$(date +%Y-%m-%d)
# Creates dir only if it... (21 Replies)
Discussion started by: learnbash
21 Replies
LEARN ABOUT OPENSOLARIS
re_comp
re_comp(3C) Standard C Library Functions re_comp(3C)
NAME
re_comp, re_exec - compile and execute regular expressions
SYNOPSIS
#include <re_comp.h>
char *re_comp(const char *string);
int re_exec(const char *string);
DESCRIPTION
The re_comp() function converts a regular expression string (RE) into an internal form suitable for pattern matching. The re_exec() func-
tion compares the string pointed to by the string argument with the last regular expression passed to re_comp().
If re_comp() is called with a null pointer argument, the current regular expression remains unchanged.
Strings passed to both re_comp() and re_exec() must be terminated by a null byte, and may include NEWLINE characters.
The re_comp() and re_exec() functions support simple regular expressions, which are defined on the regexp(5) manual page. The regular
expressions of the form {m}, {m,}, or {m,n} are not supported.
RETURN VALUES
The re_comp() function returns a null pointer when the string pointed to by the string argument is successfully converted. Otherwise, a
pointer to one of the following error message strings is returned:
No previous regular expression
Regular expression too long
unmatched (
missing ]
too many () pairs
unmatched )
Upon successful completion, re_exec() returns 1 if string matches the last compiled regular expression. Otherwise, re_exec() returns 0 if
string fails to match the last compiled regular expression, and -1 if the compiled regular expression is invalid (indicating an internal
error).
ERRORS
No errors are defined.
USAGE
For portability to implementations conforming to X/Open standards prior to SUS, regcomp(3C) and regexec(3C) are preferred to these func-
tions. See standards(5).
SEE ALSO
grep(1), regcmp(1), regcmp(3C), regcomp(3C), regexec(3C), regexpr(3GEN), regexp(5), standards(5)
SunOS 5.11 26 Feb 1997 re_comp(3C)