leukozyt
28-10-2003, 00:22
Hi Leute,
wenn ich in mein Script folgende Zeile eintrage,
werden die auszulesenden Zeilen,
nur bis zum ersten Leerzeichen,
in der For-Anweisung wiedergegeben.
for LINE in `cat /any/file.txt`
Hier ein Beispiel meines Problems:
echo 'Dies ist ein schoener Tag.' > /any/file.txt
echo 'Schon wieder ein schoener Tag.' >> /any/file.txt
for LINE in `cat /any/file.txt`
do
case "$LINE" in
"Schon wieder ein schoener Tag.")
echo "$LINE"
;;
"Dies ist ein schoener Tag.")
echo "$LINE"
;;
*)
echo "Fehler im Kommando."
;;
esac
done
exit 0
Die Lösung die ich nutzte ist folgende:
for LINE1 in "$(cat /any/file.txt | tr ' ' '_')"
do
case "$LINE1" in
"Schon_wieder_ein_schoener_Tag.")
LINE2="$(echo $LINE1 | tr '_' ' ')"
echo "$LINE2"
;;
"Dies_ist_ein_schoener_Tag.")
LINE2="$(echo $LINE1 | tr '_' ' ')"
echo "$LINE2"
...
Gibt es noch eine bessere Möglichkeit als die die ich nutze ?
MfG
Leukozyt
wenn ich in mein Script folgende Zeile eintrage,
werden die auszulesenden Zeilen,
nur bis zum ersten Leerzeichen,
in der For-Anweisung wiedergegeben.
for LINE in `cat /any/file.txt`
Hier ein Beispiel meines Problems:
echo 'Dies ist ein schoener Tag.' > /any/file.txt
echo 'Schon wieder ein schoener Tag.' >> /any/file.txt
for LINE in `cat /any/file.txt`
do
case "$LINE" in
"Schon wieder ein schoener Tag.")
echo "$LINE"
;;
"Dies ist ein schoener Tag.")
echo "$LINE"
;;
*)
echo "Fehler im Kommando."
;;
esac
done
exit 0
Die Lösung die ich nutzte ist folgende:
for LINE1 in "$(cat /any/file.txt | tr ' ' '_')"
do
case "$LINE1" in
"Schon_wieder_ein_schoener_Tag.")
LINE2="$(echo $LINE1 | tr '_' ' ')"
echo "$LINE2"
;;
"Dies_ist_ein_schoener_Tag.")
LINE2="$(echo $LINE1 | tr '_' ' ')"
echo "$LINE2"
...
Gibt es noch eine bessere Möglichkeit als die die ich nutze ?
MfG
Leukozyt