[NTLUG:Discuss] dealing with backslashes '\' when 'read'ing files..
Richard Geoffrion
ntlug at rain4us.net
Sat Feb 18 03:26:21 CST 2006
Error: Makefile:184: *** missing separator. Stop.
--my take on the issue based on my research--
----
What do you call those multi-line bash lines \
that continue on the next line so that\
there aren't long lines in the editor?
I don't know what to Google and need help finding search terms or solutions.
Issue: Script parses a Makefile line-by-line searching to remove a string
but gets tripped up when encountering those baskslashed end of line lines.
Script-so-far:
#!/bin/bash -x
rm Makefile.new #debug line to keep makefile clean during runs
while read LINE; do
if echo "$LINE" | grep -q "\ /usr/include/sys/stdsyms.h" ; then
NEWLINE=`echo $LINE | sed s#/usr/include/sys/stdsyms.h##g`
echo -e "$NEWLINE" >> Makefile.new
else
echo -e "$LINE" >> Makefile.new
fi
done < Makefile
#mv Makefile.new Makefile
The Original Makefile: (a few sample lines in question)
MP_OTHER_OBJS = mpeg.o subsample.o param.o rgbtoycc.o \
readframe.o combine.o jrevdct.o frame.o fsize.o frametype.o \
libpnmrw.o specifics.o rate.o opts.o
MP_OTHER_SRCS = mpeg.c subsample.c param.c rgbtoycc.c \
readframe.c combine.c jrevdct.c frame.c fsize.c frametype.c \
libpnmrw.c specifics.c rate.c opts.c
RESULTING FILE AFTER RUN???
Well.. those 6 lines become two and they contain [tabs]. How do you get
read to not concatenate those multi-lines?
Is there a different approach I should be taking?
--
Richard
More information about the Discuss
mailing list