[Lvlug] Re: Need some sed/awk magic
faber at linuxnj.com
Wed Aug 24 00:09:08 EDT 2005
On 23/08/05 21:29 -0400, Mark wrote:
> So what I need to do is for each filename (133 files) in 'devices' change
> every #include <FILENAME> to #include <filename> in every source file in the
> examples directory.
Where's Ricardo when you need him? :-)
How about a little shell + Perl?
(warning: untested code)
for i in $(ls /devices/*): do
/usr/bin/perl -i.BAK -p -e 's/#include <(..*)>/#include <uc($1)>/' $i
The idea is this:
loop through each file in the /devices/ directory placing the name in
variable i. Execute a perl "edit in place" command on each file $i.
Search for "#include <regular expression>" and replace it with "#include
<upper case of the previously found regular expression>". Make a backup
copy of the file using the .BAK extension as well.
You'll prolly have to play with the perl search term (the part after s/)
to get it just right.
Linux New Jersey, Inc.
More information about the Lvlug