[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/25 03:18 / Filesize : 212 KB / Number-of Response : 865
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

シェルスクリプト総合 その19



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






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<212KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef