14

次の echo コマンドを検討してください。

 echo -e "at\r"

atこれにより、コマンド ラインに出力が生成されます。つまり、特殊文字 \r が解釈されます。ファイル内のテキストでまったく同じことをしたい。全く同じ配列だと仮定すると

at\r

という名前のファイルに書き込まれat.txt、端末に表示したいと思います。しかし

cat at.txt

出力を与える

at\r

私が欲しいものではないもの。端末に出力するだけでなく、特別なシーケンス \r を解釈したい。誰でもアイデアはありますか?

ありがとうアレックス

4

3 に答える 3

14

なぜだめですか:

while read -r line; do echo -e $line; done < at.txt
于 2012-08-29T10:23:31.183 に答える
9

簡単にできます:

echo -e $(cat at.txt)
于 2015-12-10T14:31:30.163 に答える
2

組み込みechoコマンドは、一般的なバックスラッシュ エスケープを解釈します。ただし、ファイルでは、同様の方法で解釈または変換する必要があります。sedプログラムはこれを行うことができます。

sed -e 's/\\r/\r/' < at.txt

しかし、私はここでも何かを学びました。外部echoコマンドは、内部コマンドとは異なる動作をします。

/bin/echo "\r"

とは異なる出力を持つ

echo "\r"

\rただし、基本的には、リテラル文字列を 1 バイトの 0x0Dに変換するフィルターが必要です。

于 2012-08-29T10:23:19.370 に答える