[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Slightly OT: Bash-Script / Zeilenumbrueche



Hallo zusammen,

ich kriege hier bald zuviel.

Ich lese per "while...do read" eine HTML-Datei, die keine
DOS-Zeilenumbrueche (^M) enthaelt, ein, und eine simple "echo"-Ausgabe
haengt mir diese dann rein.

Das passiert aber nur, wenn ich in meiner while-Schleife unter einer
bestimmten Bedingung eine zusaetzliche Zeile ausgebe.

Zum besseren Verstaendnis mal das Script:

#!/bin/bash
#
#
SOURCE="/var/www/ssl/dom"
DEST="/home/tooxtreme4u/job"

HTML_DIRS[0]="."
HTML_DIRS[1]="whdata"
HTML_DIRS[2]="whgdata"

APP_DIRS[0]="."
APP_DIRS[1]="whdata"
APP_DIRS[2]="whgdata"
APP_DIRS[3]="whxdata"
APP_DIRS[4]="images"


rm -rf ${DEST}
mkdir ${DEST}
cp -r ${SOURCE}/. ${DEST}/
find ${DEST} -type f -name '*.htm*' -exec rm {} \;

for HTML_DIR in ${HTML_DIRS[@]}
do
        cd ${SOURCE}/${HTML_DIR}

        for HTML_FILE in $(find . -maxdepth 1 -type f -name '*.htm*' -print);

        do
                echo "${HTML_FILE}"

                BODY_FOUND="FALSE"

                while read  LINE
                do
                        echo "${LINE}" >>
${DEST}/${HTML_DIR}/$(basename ${HTML_FILE})

                        if [ "${BODY_FOUND}"="FALSE" ];
                        then
                                CHECK=$(echo ${LINE:0:5} | tr
"[:lower:]" "[:upper:]")
                                if [ "${CHECK}" = "<BODY" ];
                                then
                                       ###
                                       ### wenn ich die nachfolgende
Zeile auskommentiere, erhalte ich KEINE DOS-Zeilenumbrueche
                                       ### lasse ich sie drin, erhalte
ich die DOS-Umbrueche
                                       ###
                                        echo "<IMG
src=\"/foo/bar.jpg\" border=0 height=0 width=0>" >>
${DEST}/${HTML_DIR}/$(basename ${HTML_FILE})
                                       ###
                                        BODY_FOUND="TRUE"
                                fi
                        fi
                done < ${HTML_FILE}

        done
done

exit 0



Hier mal ein Ausschnitt aus einer beliebigen HTML-Datei mit Umbruch:


</style><script type="text/javascript" language="javascript1.2"
src="whmsg.js"></script>^M
<script type="text/javascript" language="javascript" src="whver.js"></script>^M
<script type="text/javascript" language="javascript1.2"
src="whproxy.js"></script>^M
<script type="text/javascript" language="javascript1.2"
src="whutils.js"></script>^M
<script type="text/javascript" language="javascript1.2"
src="whtopic.js"></script>^M
</HEAD>^M
<BODY><script type="text/javascript" language="javascript1.2">^M
<IMG src="/foo/bar.jpg" border=0 height=0 width=0>
<!--^M


und hier, wie es ohne die zusaetzliche Zeileinausgabe per "echo"
rauskommt (also wie es sein sollte):


</style><script type="text/javascript" language="javascript1.2"
src="whmsg.js"></script>
<script type="text/javascript" language="javascript" src="whver.js"></script>
<script type="text/javascript" language="javascript1.2"
src="whproxy.js"></script>
<script type="text/javascript" language="javascript1.2"
src="whutils.js"></script>
<script type="text/javascript" language="javascript1.2"
src="whtopic.js"></script>
</HEAD>
<BODY><script type="text/javascript" language="javascript1.2">
<IMG src="/foo/bar.jpg" border=0 height=0 width=0>
<!--


Interessant ist zu sehen, dass in der zusaetzlich ausgegebenen Zeile
kein DOS-Umbruch ausgegeben wird.

Also ich bin hier langsam am verzweifeln, warum das so ist.

Natuerlich koennte ich das ganze per zusaetzlichem sed-Befehl oder dem
Utility dos2unix loesen, aber es sind ein Haufen Files, und das Script
laeuft so schon recht lange.
Ausserdem wuerde ich gerne verstehen, warum das passiert.

Waere klasse,, wenn da jemand einen Tip fuer mich haette.

Dann lasst mal was hoeren...

Gregor

-- 
what's puzzlin' you, is the nature of my game
gpgp-fp: 79A84FA526807026795E4209D3B3FE028B3170B2
gpgp-key available @ http://pgpkeys.pca.dfn.de:11371


Reply to: