General
cancel
Showing results for 
Search instead for 
Did you mean: 

Which came first, the sed & awk or the Perl?

SOLVED
Go to solution
Jim Mallett
Honored Contributor

Which came first, the sed & awk or the Perl?

Ok, I've picked up a few scripting books recommended on the forum and I'm going to dive into them this weekend. Which would be the logical first choice to read? Sed & Awk, or Perl? Does one lend itself to the other? How much coffee should I make beforehand?

Actually, one other question. I have Cygwin on my laptop and can practice scripting at home. Will I find the Cygwin versions of sed/awk/perl to be different than the HP-UX releases? (extra pts for this one)

Any thoughts are appreciated....

Jim Mallett
Hindsight is 20/20
17 REPLIES
Chris Vail
Honored Contributor

Re: Which came first, the sed & awk or the Perl?

Study BOTH, or ALL (depending on how you phrase it)

I've been doing shell scripting in one form or fashion for nearly 20 years, and I'm still learning stuff. Open in front of me on the desk I type this are 3 O'Reilly books: _Learning Perl_, _Effective Awk Programming_, and _Mastering Regular Expresssions_.

These are all complementary, not competing. They work together quite well. I really know nothing of PERL, but am learning. Sed & awk are what I use most commonly, but awk is a programming language all by itself. Generally, PERL is considered a superset of awk.

Most importantly: LOTS of coffee, followed by beer.

Chris
A. Clay Stephenson
Acclaimed Contributor
Solution

Re: Which came first, the sed & awk or the Perl?


Both are good BUT if I were starting over, I would go only with Perl. There is really nothing you can do with sed, awk, sort, grep, sh, ... that you can't do with Perl directly. The price you pay is that the learning curve is steeper but the regular expressions in Perl are on steroids. If you learn Perl RE's first then some of the things can't be applied to sed or awk.

About the only thing I turn to awk first for is simple one-liners that print maybe the 3rd and 5th field of each line. Awk is a little simpler for tasks like that but Perl is really the weapon of choice these days.

In a very real sense, the only need for awk/sed knowledge is to fix/maintain legacy code. All of my new scripting is Perl and as a bonus if carefully written will run platform independently -- and not just UNIX.

Your Cygwin versions will be close enough. There will be minor awk differences and basically Perl 5.6 is Perl 5.6 but Perl will have modules that are OS/Platform specific but those are not the typical day-to-day Perl tasks.


If it ain't broke, I can fix that.
Tim D Fulford
Honored Contributor

Re: Which came first, the sed & awk or the Perl?

I would go for perl, it is more powerful than sed or awk.

If you master perl, then sed & awk will be that much easier.

regards

Tim
-
John Bolene
Honored Contributor

Re: Which came first, the sed & awk or the Perl?

Perl is a whole programming language by itself and by far the most powerful of what you mentioned and it is extendable thru the addition of other modules.

Sed and awk were made shortly after UNIX was invented.

If you learn Perl, you may not need anything else.
It is always a good day when you are launching rockets! http://tripolioklahoma.org, Mostly Missiles http://mostlymissiles.com
Caesar_3
Esteemed Contributor

Re: Which came first, the sed & awk or the Perl?

Hello!

If you want to be good in system then
you should learn every thing!
Perl is the best, you can do with what ever
you want.

Sed&Awk give you the power in the command line.

About the coffee so if you know programing
(line C, pascal, etc.) then it would be hard
so not to much coffee if not then you will need
more coffee.

I know that perl in hpux (unix kind) a little
diffrent than in win systems, more function
you have on unix, but for basic programming
you would see a diffrent.

Search on the net for book by O'really
you will find good books about perl, sed & awk

Caesar
Shannon Petry
Honored Contributor

Re: Which came first, the sed & awk or the Perl?

Well, the title of your question is answered much differently than your question. First was ed, then sed, then awk, then perl.

Now that that's overwith, here is what you need to master before handling any of the 3. Regular expressions!

sed, awk, and perl all use the same exact regular expressions. If you can master in 1, you can master in all. Since sed is the fastest way to test your regular expressions, get the knack for them here.

Now for programming, if I went back in time I would have dont alot more of my work in Perl. Sadly, perl is not available for at the same level for all Unices, and I work on many. IMHO it would have been worth it to compile it for each and use it.

As for practicing on your laptop with cygwin, the sed, awk and perl work the same. However remember that the base OS is still windblows, so critical things you could do in Unix just can not possibly exist.

Regards,
Shannon
Microsoft. When do you want a virus today?
Michael Steele_2
Honored Contributor

Re: Which came first, the sed & awk or the Perl?

Perl.

Perl.

Study alot of Perl.

You can market Perl on your resume. SED and AWK are mostly obsolete.

Here's what you need to know about awk:

cat file | awk '{ print $0 $1 $2 $3 }'

That's it!

Here what you need to know about sed:

VAR=$(echo $PATH | sed -e -s "/\// /g" )

That's it!

Everything else can be done faster and more efficiently in perl. And if you want to learn then copy and apply everything from this thread:

http://forums.itrc.hp.com/cm/QuestionAnswer/1,,0x026250011d20d6118ff40090279cd0f9,00.html

Those books might be good for reference but don't read them cover to cover.

Also, get a 4mm tape and start tar'ing all of your scripts onto tape so you always have them.
Support Fatherhood - Stop Family Law
Leif Halvarsson_2
Honored Contributor

Re: Which came first, the sed & awk or the Perl?

Hi,
There may be one important reason why also learn something about awk and sed. You will find awk and sed on all Unix boxes but perhaps not Perl (and you are perhaps not allowed to install it everywhere). The same reason why it is important to know something about vi, it is always avialable.
William Wong_2
Trusted Contributor

Re: Which came first, the sed & awk or the Perl?

For the first part of the question: sed was first as it was written by Lee E. McMahon in 1973 or 1974, awk was next and was written in 1977. The name awk comes from the initials of its designers: Alfred V. Aho, Peter J. Weinberger, and Brian W. Kernighan and perl was last as it was first released in 1987 by Larry Wall.

As previously stated it doesn't hurt to learn all of them. Yes they do lend to each other in
some regards such as their support of regular expressions.

For the final piece of the question there are some minor differences in the behavior and how it processes certain types of information between the Cygwin versions of sed and awk and the HP-UX versions. Perl should be the same for both.
Ian Dennison_1
Honored Contributor

Re: Which came first, the sed & awk or the Perl?

Having been a code cutter before a SA, I prefer awk and sed myself.

I think it depends what you are likely to be exposed to on a regular basis and how you think; Perl is obviously the up-and-coming environment, but I find awk and sed suit my programming style and experience (4GLs, old 80's programming training, COBOL, etc).

Ask yourself this question, which of these loops would be the way you would mentally structure the problem?

Answer A:

While not EOF
Read from File
count++

End Loop
Print Count

Answer B:

Print File, pass to a function that counts the lines and prints the result

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-


Answer A:- Use Perl

Answer B:- Use awk / sed

I will try to come up with a better test and will post it later. Share and Enjoy! Ian
Building a dumber user
malay boy
Trusted Contributor

Re: Which came first, the sed & awk or the Perl?

Hi guy's
I'll be trying to read perl book(O reilly) starting from last week but no avail.By starting looking at the book, is as though as taking a sleeping pil.

Tip:Get a lot of coffee...

regards
mB
There are three person in my team-Me ,myself and I.
Jim Mallett
Honored Contributor

Re: Which came first, the sed & awk or the Perl?

Thanks all, some interesting replies! I owed Clay for straightening me out on an earlier post so he got the bunny. I'll eventually get thru all the books, I just wasn't sure if there was a logical step to them.
I'm going to go with the Perl first because I still do a lot of Windowz work and I like the idea of it being cross-platform.

For all in the States, have a Happy 4th! For all that aren't, I guess have a Happy 4th without the fireworks.

Jim
Hindsight is 20/20
Graham Cameron_1
Honored Contributor

Re: Which came first, the sed & awk or the Perl?

Clay and the others are right, you can do everything in Perl without having to touch any of the others.
The big problem I have with Perl is that is is write-only, especially the REs. It is so powerful that scripters get carried away and can generate complex code that may have been obvious to them at the time are completely incomprehensible to anyone else.
sh, awk, sed etc may have less power and take longer to write (and run), but readability is something I have never had a problem with.

BTW don't forget us in the UK when dishing out points. Being to your East we generally don't get to post replies until the day after, by which time all the easy points habe been scooped up ;-(

-- Graham
Computers make it easier to do a lot of things, but most of the things they make it easier to do don't need to be done.
Umapathy S
Honored Contributor

Re: Which came first, the sed & awk or the Perl?

Jim,
I missed the bandwagon. Hope to join late will not be punished.

My idea is to start with sed and awk first. That will give an edge with the shell script background. Oneliners will come in handy as always. Master regular expressions also. Get Oreilly Mastering regular expressions also. You can move ahead in Perl quicky if you have these basics. Actually you can concentrated on Perls richness. A lot of coffee is needed (I drink tea).

Good with cygwin. Cygwin is where I actually learnt all these stuff. Learning and doing some samples wont be a problem in cygwin environment. As also you can update the cygwin to the latest one. The trick will be the usage of regular expressions. If we master that then done.

All the best for a successful weekend. (Get the camel at the end. But you need to practise before reaching there.)

cheers
Umapathy
Arise Awake and Stop NOT till the goal is Reached!
John Bolene
Honored Contributor

Re: Which came first, the sed & awk or the Perl?

Yes Perl can be very hard to understand if you use all the assumptions, defaults, and syntax, once you get there you will understand what I am saying.

There is a one liner contest where you have to make it as hard to understand as possible while doing something worthwhile.
It is always a good day when you are launching rockets! http://tripolioklahoma.org, Mostly Missiles http://mostlymissiles.com
Fred Martin_1
Valued Contributor

Re: Which came first, the sed & awk or the Perl?

I don't think you can be a unix system administrator and not know sed/awk. I regard those as basics. Don't know about the others but you should get the book "The AWK Programming Language" by Aho, Kernighan and Weinberger (the authors of AWK). It's the shortest most consise and most useful manual on the face of the earth.
fmartin@applicatorssales.com
Edgar Avila
Frequent Advisor

Re: Which came first, the sed & awk or the Perl?

Definitly PERL.
Why?
You have all the modules you need at www.cpan.org. EVERYTHING.
Modules for databases, for networking , even to emulate a subset of expect.
It's a glue languaje. That means you can use it to comunicate in some way betwen apps.
You can do CGIs.
Emulate ASPs.
Any trouble you can have, perl has a solution to it. Easy (well... most of the times).
If someday you need something of awk or sed, you can use:
# my_command | perl -ne 'you litle script here'.

And don't even think about it.
Learn Perl, and learn it well.
I've been developing Network Management Apps for 4 years. Perl always has been the solution of all my headaches.
Knowledge is power... so... give me the power!!