2016-06-28 8 views
0

Sonderzeichen zu entfernen Wenn xx2.txt wie jede Linie hatlasen in dem Dateiinhalt

c:\test\testing.txt 

der folgende Code „\“ entfernt und gibt c:testtesting.txt. Gibt es eine Option, alle Zeichen in der Datei während des Lesens zu behalten ??

exec 5<xx2.txt 
while IFS= read -u 5 line; 
do 
until [ "$CONTINUE_EXECUTION" = "Y" -o "$CONTINUE_EXECUTION" = "N" ]; do 
    read -p "Please press Y to continue or N to exit: " CONTINUE_EXECUTION done 
echo $line 
CONTINUE_EXECUTION="" 
done 
+1

https://www.gnu.org/software/bash/manual/html_node/Bash-Builtins.html, scrollen Sie nach unten zum Abschnitt über den Befehl 'read'. –

+0

Als Nebenbemerkung: Ihr Code beendet die "while" -Schleife nicht, wenn der Benutzer 'N' eingibt. – mklement0

Antwort

2

Die Bash read standardmäßig eingebauten führen Interpretation von \ Zeichen., Was schade ist, denn es ist selten sinnvoll ist. [1]

read -r schaltet diese Verarbeitung aus und ist fast immer was Sie wollen.

, um Ihren Code angewandt: IFS= read -r -u 5 line


[1] Der Zweck dieser Verarbeitung ist Linie Fortsetzung, aber die \ entfernt von jede\<char> Sequenz zu unterstützen.

+0

aber wenn ich -r anstelle von -u benutze, hängt es einfach. – Nagma

+1

@RamDontineni Ich glaube nicht, dass jemand dich gebeten hat, '-u' zu verwenden:' read -ru 5 line' – andlrc

+0

Meine ursprüngliche Anforderung war, den Benutzer zu zwingen, bis er Y oder N beim Lesen der Datei eingibt. Aber während es die Benutzereingabe nicht verlangt, während es die Datei liest. während IFS = Lese-Zeile; do bis ["$ CONTINUE_EXECUTION" = "Y" -o "$ CONTINUE_EXECUTION" = "N"]; do lesen -p "Bitte drücken Sie Y, um fortzufahren oder N zu verlassen:" CONTINUE_EXECUTION echo $ line CONTINUE_EXECUTION getan = "" getan Nagma

Verwandte Themen