Hallo,
Ich habe hier ein unterschiedliches Verhalten, das ich mir nicht erklären kann:
Im Terminal gibt der Befehl
echo "Komma,_line_Komma,_line__abs_Semikolon;_line_Semikolon;_line__abs_ENDE" | awk '
{
gsub(/,(_line__abs_|_line_)/, ", "); # Ersetze `,_line__abs_` oder `,_line_` durch `, `
gsub(/;(_line__abs_|_line_)/, "; "); # Ersetze `;_line__abs_` oder `;_line_` durch `; `
print
}'das erwartete Ergebnis
Komma, Komma, Semikolon; Semikolon; ENDE
Wenn ich die Befehle aber als scriptdatei 'script.awk' ausführen lasse:
awk -f script.awk input.txt > 2.txt
Inhalt 'input.txt':
Komma,_line_Komma,_line__abs_Semikolon;_line_Semikolon;_line__abs_ENDE
Inhalt 'script.awk':
# script.awk
{
gsub(/,(_line__abs_|_line_)/, ", "); # Ersetze `,_line__abs_` oder `,_line_` durch `, `
gsub(/;(_line__abs_|_line_)/, "; "); # Ersetze `;_line__abs_` oder `;_line_` durch `; `
print
}dann erhalte ich folgendes Ergebnis:
Komma, Komma._ Semikolon; Semikolon;_ ENDE
Wie kann es zu so einem unterschiedlichen Verhalten zwischen output Terminalbefehl und output Dateiaufruf kommen? Noch wichtiger: Wie löse ich das Problem, dass der scriptdateiaufruf ein falsches Ergebnis liefert?
Schon mal vielen Dank für Ideen und Antworten