- 442 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/03/07(水) 00:36:49.85 ]
- テキストから読み込んだ文字列内の「\\」をそのまま変数に入れたり表示させたりする方法を
探しています。OSはCentOS6、シェルはbashです 以下のような問題に対処したいのですが、何か手段はありますでしょうか? 以下のsampletext.txt(「\\」や「\」を含む)を、readecho.shのようにreadで読み、 echoで出力すると、「\」がエスケープか何かされているようで、表示されません bashやechoのmanにある-Eオプションを明示的に付与してみても変化が無いようです awkprint.shのようにawkで行うと期待した結果が出るのですが、他の処理の関係上、 できればawkは使わずに、シェルスクリプトで実現させる方法を知りたく思ってます テキストを事前に「\\」から「\\\\」としておく等の対処はせずに済ませたいです $ cat sampletext.txt \\winsv\a\b\c \\sambasv\d\e\f $ cat readecho.sh #! /bin/sh while read STRING do echo -E "${STRING}" done < sampletext.txt $ ./readecho.sh \winsvabc \sambasvdef ←「\\」が「\」になり、「\」が消えている。NG $ cat awkprint.sh #! /bin/sh cat sampletext.txt | awk '{print $0}' $ ./awkprint.sh \\winsv\a\b\c \\sambasv\d\e\f ←上記のような問題はない。OK
|

|