- ベストアンサー
<TAB>のエスケープは「\11」ですが、<SPACE>のエスケープは
<TAB>のエスケープは「\11」ですが、<SPACE>のエスケープは? シェルスクリプト(sh)でtrコマンドを扱っている途中、<tab>のエスケープは「\11」であることが分かりましたが、<space>のエスケープは検索しても見つかりません。 <space>のエスケープを教えてください。 もし良かったら他のエスケープの一覧を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
そうそう, Unix系だと「\+8進数」という (C のエスケープシーケンスの) 形はだいたいつかえるはず. そして, 都合がいいことに文字コードを忘れてしまっても man ascii でなんとかなる.
その他の回答 (3)
- notnot
- ベストアンサー率47% (4900/10358)
他の方が書いているように、エスケープの処理はプログラムによって違います。 もしTABが\11で扱えるプログラムならSPACEは\40でしょうね。 そもそも、 >とかsedコマンドでスペースやタブが使えないのです。 って、一体どういう環境でsedを起動しているのですか?その起動方法が間違っている可能性がありますね。
お礼
ご回答ありがとうございます。 >もしTABが\11で扱えるプログラムならSPACEは\40でしょうね。 私の求めていた答はこれです。 >一体どういう環境でsedを起動しているのですか?その起動方法が間違っている可能性がありますね。 WindowsVistaをホストPCにし、VMWareでCentOS5.4をゲストOSにしました。もちろん、サーバとしては使っていません。あくまでもUNIXを操作するための勉強台です。
- Tacosan
- ベストアンサー率23% (3656/15482)
あっと, #1 の「シェル」は間違ってた. エスケープシーケンスは本質的に使うプログラムによって違う (と思った方がいい) から, 使ってるプログラムのマニュアルを読まなきゃならない. しかし, 「調べる」のファーストチョイスが google で, しかも「記号で検索しようとする」のか.... 困ったときはまずマニュアルを読むべきだし, 検索するにしてももっと気を利かせるべきだろうなぁ. でも, 水平タブはともかく sed -e 's/<space><space>*/<space>/g' は (もちろん <space> は空白文字にしなきゃならんけど) 「書いた通り」に動作するはず. 「sedコマンドでスペースやタブが使えない」と判断したのはなぜ? もう 1回書いておくけど, まずマニュアルを熟読しろ.
お礼
ご回答ありがとうございます。 >エスケープシーケンスは本質的に使うプログラムによって違う (と思った方がいい) から, 使ってるプログラムのマニュアルを読まなきゃならない. なるほど。manコマンドを使って用語の意味を調べることは全然思いつきしませんでした。manコマンドでsedコマンドを調べたところ、正規表現が必要だと書いてありました。 >「sedコマンドでスペースやタブが使えない」と判断したのはなぜ? 再度やってみたら使えました。多分、私の入力ミスでしょう。 >もう 1回書いておくけど, まずマニュアルを熟読しろ. その大切さが分かりました。ありがとうございます。 きついアドバイスだったと思いますが、凄く勉強になりました。
- Tacosan
- ベストアンサー率23% (3656/15482)
どういう事情で「空白のエスケープ」が必要なんだろうか. そして, 何をどう調べたんだろうか. たぶん使っているシェルのマニュアルを読めばわかるが \ . 水平タブも \t の方がいいと思うよ.
補足
sed -e 's/<tab>/<space>/g' とか sed -e 's/<space><space>*/<space>/g' とかsedコマンドでスペースやタブが使えないのです。 もし上記のような文字列操作が出来れば自動的にファイルを読み取って新たなファイルとして生成することができるのです。 だからスペースのエスケープを知りたいのです。 Googleでは記号では検索されませんので、検索しようがありません。
お礼
ご回答ありがとうございます。 >都合がいいことに文字コードを忘れてしまっても man ascii でなんとかなる. なるほど。 とても参考になりました。