2016-06-28 6 views
0

を特殊な文字を削除読んxx2.txtは、ファイルの内容に

c:\test\testing.txt 

などの任意の行を持っている場合は、以下のコードは「\」を削除し、c:testtesting.txtを返します。それを読んでいる間にファイル内のすべての文字を保持するオプションはありますか?デフォルトでは、組み込み

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で、 'read'コマンドのセクションまでスクロールしてください。 –

+0

脇に:あなたのコードは 'N'を入力したときに' while'ループを終了しません。 – mklement0

答えて

2

バッシュread\文字の解釈を実行します。、それはまれに有用であるため、不幸です。 [1]

read -rこの処理をオフにして、ほとんど常にあなたが望むものです。コードに適用

IFS= read -r -u 5 line


[1]この処理の目的は、行継続をサポートするが、\任意\<char>シーケンスから除去されます。

+0

しかし、-uを-uの代わりに使用すると、ハングするだけです。 – Nagma

+1

@RamDontineni誰かがあなたに '-u'を使わないように頼んだとは思わない:' read -ru 5 line' – andlrc

+0

私の本来の要件は、ファイルを読んでいる間にYかNを入力するまでユーザを強制することでした。しかし、それはファイルを読み込んでいるときにユーザーの入力を促していません。 IFS = read -r行です。 ["$ CONTINUE_EXECUTION" = "Y" -o "$ CONTINUE_EXECUTION" = "N"]まで を実行します。 は-p読んでやる "Yは続行するか、Nを終了するにはを押してください:" CONTINUE_EXECUTIONは "" = エコー$行 CONTINUE_EXECUTIONを行って 行わ Nagma

関連する問題