gawk - v. <= 4.1.0
sed - v. whatever

I have a file, 'tempx.txt' containing
 (for simplicity - some "so" files from my '/usr/lib/'),

[]$ cat tempx.txt
libexpect5.43.so
libsndfile.so.1.0.25
libsoftokn3.so
libsoup-2.4.so.1.5.0

and I would like to separate their "roots" from the rest, i.e.,

"libsndfile.so.1.0.25" --> "libsndfile", etc.

so I (instinctively) try:

[]$ cat tempx.txt | awk 'BEGIN {FS=".so"} ; {print $1}'
libexpect5.43
libsndfile
li
li

then this (to show off I know a thing or two about escapes):

[/usr/lib]$ cat tempx.txt | awk 'BEGIN {FS="\.so"} ; {print $1}'
 awk: cmd. line:1: warning: escape sequence `\.' treated as plain `.'
libexpect5.43
libsndfile
li
li

Terrible.

Surprisingly, this ugly hack (bringing 'sed' into the picture)
accomplishes what I intended.

First, to test the waters,
[]$ sed -e 's/\.so/YYY/' tempx.txt
libexpect5.43YYY
libsndfileYYY.1.0.25
libsoftokn3YYY
libsoup-2.4YYY.1.5.0

then, finally,

[]$ sed -e 's/\.so/YYY/' tempx.txt | awk 'BEGIN {FS="YYY"} ; {print $1}'
libexpect5.43
libsndfile
libsoftokn3
libsoup-2.4

Is there a problem with GNU gawk and/or my system or maybe with me?

Thanks,
-- Alex
-- 
http://linuxfromscratch.org/mailman/listinfo/lfs-support
FAQ: http://www.linuxfromscratch.org/lfs/faq.html
Unsubscribe: See the above information page

Reply via email to