アレルギー対策、自宅でできる効果的な方法とは?

この二つは使用に違いがあるのはわかるのですが、どのような時に使い分けるのでしょうか?
調べて見たのですが、シェルによるとかコマンドによるとか書かれていましたがいまいちよくわかりません。
こういうときは正規表現、こんなときはワイルドカード、という風に使い分けに違いがあれば教えて下さい。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

シェルは「*」などのメタキャラクタを扱う際、自分なりのルールに則って解釈していきます。

このシェルの解釈の仕方をワイルドカードといいます。シェルはメタキャラクタを正規表現として扱いません。これは仕様です。

> こういうときは正規表現、こんなときはワイルドカード、という風に使い分けに違いがあれば教えて下さい。

故に「使い分け」とは意味合いが少しばかり違うのです。どちらかというと「使い方」に気を配る、というイメージでしょうか。
コマンドラインを管理するのはシェルです。ということは、コマンドラインに出現するメタキャラクタはすべてシェルがワイルドカードとして展開します。

ただし、grep, sed や awk など一部のコマンドはその性質上、引数の全て、あるいは特定の部分に指定された文字や文字列を正規表現として解釈します。これも仕様です。

よって、正規表現を扱うコマンド、即ち上記 grep などがコマンドライン中に「*」や「$」などのメタキャラクタを伴って登場した際、シェルとの争奪戦になります。そこでクォーティングなる気配りが必要になります。

とは言うも、このメタキャラクタの解釈には順序というものがあり、先にコマンドライン全体を解釈するのはシェルである、ということを知っておくとより理解が深まると思います。
    • good
    • 1
この回答へのお礼

非常にわかり易い回答、ありがとうございました。
頭の中が整理できました。
ありがとうございました。

お礼日時:2007/07/03 07:20

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qワイルドカードと正規表現って何が違うのでしょうか?

ワイルドカードは簡単な文字検索方法で
正規表現は難しいパターンも調べられる文字検索方法ですか?

Aベストアンサー

「ワイルドカードと正規表現」じゃなくて、「ファイル名のマッチと正規表現」の事ですかね。

ワイルドカードはトランプ用語で、「他のどんなカードの代わりにも使えるカード(多くの場合ジョーカー)」のことです。そこから転じて、「他のどんな文字にもマッチする特殊文字」の意味で使われます。

ファイル名のマッチ: コマンドラインや、プログラミング言語の一部の関数でのファイル名の指定に使う
 ? どんな1文字にもマッチ(ワイルドカード)
 * 0文字以上のどんな文字列にもマッチ(文字列のワイルドカード)
 Windowsで使えるのは上記2つですが、Unix/Linuxのシェルだともう少しあります。

正規表現: プログラミング言語から様々な文字列パターンを選択するときに使うパターン
 . どんな1文字にもマッチ(ワイルドカード)
 * 直前の表現の0回以上の繰り返し(繰り返し指定子の一つ)
 他に多数あり。

それぞれ使い場所が違います。

Qメタ文字とワイルドカードの比較

メタ文字とワイルドカードの比較して、
違いを調べているのですが、どうも明確によくわかりません。

両方とも「任意の文字列を指定するための特殊な文字」な事は
分かっているのですが、メタ文字はこの範囲、ワイルドカードは子の範囲など言葉の切り分けはあるのでしょうか?

Aベストアンサー

ワイルドカード文字とは、メタ文字の一種です。

メタ文字には、ワイルドカードな文字と、ワイルドカードじゃない文字があります。両方をひっくるめて「メタ文字」と言います。

・メタ文字
特殊な意味を持つ文字のこと。

「メタ」とは「超」と言う意味で「普通じゃない」と言うニュアンスです。つまり「特殊文字」って事です。

例えば、正規表現では
. ^ $ [ ] * + ? | ( ) \
が「メタ文字」です。

これらは「特殊である」と言うだけで、任意の文字や任意の文字列を意味するとは限りません。

たとえば「^」は、任意の文字を意味しません。意味するのは「行頭」です。

・ワイルドカード文字
メタ文字のうち、任意の文字、任意の文字列を表す特殊文字のこと。

例えば、正規表現では
. * + ?
が「ワイルドカード文字」です。

QPCI deviceって何ですか?

「新しいプラグアンドプレイがみつかりました。PCI device」というメッセージが出て、インストール画面に切り替わりますが、何をインストールすればよいのかわかりません。アイコンからサウンドのマークが知らぬ間に消えており、PCI deviceってサウンドカードのドライバのこと?って考えるのですが。

ど素人質問でごめんなさい。教えてください。

Aベストアンサー

PCIデバイスは「広義」では「PCIバス」に接続されているデバイス「すべて」をさします。
(例としてLAN、SATAチップ、サウンドなど)

一般的にはPCIスロットに増設したデバイスをさしますが、ドライバの破損や不良で稀に「見たことも聞いたことも無い」デバイス名が現れたりします。
(Windowsのプラグアンドプレイが無理矢理適合しそうなドライバを見つけてくる場合がある)

デバイスマネージャで警告が出ているのでしょうから、一度怪しいデバイスを削除して、再起動するなりして認識させてみてください。
その際ドライバを要求されたら適応するドライバをインストールしてください。

Qスクリプトって、何ですか?どうすればいいのですか?

パソコンの使用中に
「スクリプトが原因で動作が遅くなっています。スクリプトを中止しますか?」
というダイアログが出ました。
この場合「はい」にするのですか、「いいえ」にするのですか。
どうして、この様な表示が出るのですか?

「はい」にチェックをしたのですが、これってどういうことになったのでしょう。

何も分からずパソコンをやっていますので、どうぞ宜しくお願いいたします。

Aベストアンサー

ちょっと難しいかもしれませんが機械語への変換作業を
省略して簡単に実行できるようにした簡易プログラムの
事です。
通常、プログラムはソースコード(設計図)をもとにコンピュータの理解できる機械語に変換して実行されますが、
そのプロセスを自動化して簡単に実行できるようにしたものをスクリプトと言います。
特に、Webページ上で、HTMLだけではできない様々な機能を利用するための簡易的なプログラムをスクリプトと呼ぶ事もあります。

パソコンの操作中に、この変換が上手く行かなくなる事があってスクリプトのError表示が出る事があるのです。
重要な操作中で無ければ「はい」の選択で
問題は無いと思われます。

QXWindowって何ですか?

OSの勉強をしようと思っています。Linuxをいじってみようと思っているのですが、みなさんの質問を読んでいると、XWindowというのがよくでてきます。これはいったい何なのでしょうか?Windowsでいうコマンドプロンプトみたいなもんですか(--;)?

Aベストアンサー

No.4です。
質問にありました件ですが、No.3はUNIXサーバ側のシステム(GUI=Graphic User Interface、グラフイックユーザーインターフェリス)についての説明で、No.1はそのシステムをリモートから利用する立場から、サーバのグラフィックコンソールをリモート端末にXシステムのコンソールをソックリ手元の端末に表示させる「XシステムのWindows(複数のウィンドウ)」のことをX-Windowsということですね。
同じシステムをサーバだけについて言及したのがNo.3、X
のサーバをGUI環境で利用するための接続や操作端末の立場から説明したのがNo.1といえます。
最近は大抵のLINUXパソコンもGUI環境を持ち、サーバとして使えますので、後はグラフィックを伴うアプリケーションを整備すれば、X-Windowsのサーバ/Xエミュレーション端末環境が整うわけですね。 
X-Windowsの端末となりうるのはLinuxなどのUNIX系パソコンのほか、Xエミュレーションソフトを搭載したWindows端末およびMacOS端末ですね。

UNIXによるXのGUI環境で接続しないサーバとクライアント、つまり、単なるサーバとクライアントの接続や他のコンピューターの画面をリモートで操作するだけの接続は、X-Window(s)システムとが言いません。

No.4です。
質問にありました件ですが、No.3はUNIXサーバ側のシステム(GUI=Graphic User Interface、グラフイックユーザーインターフェリス)についての説明で、No.1はそのシステムをリモートから利用する立場から、サーバのグラフィックコンソールをリモート端末にXシステムのコンソールをソックリ手元の端末に表示させる「XシステムのWindows(複数のウィンドウ)」のことをX-Windowsということですね。
同じシステムをサーバだけについて言及したのがNo.3、X
のサーバをGUI環境で利用するための接続や操作...続きを読む

Q組み込み系と制御系の違いは?

SE/PGの求人で、組み込み系、制御系を見ますが、
組み込みとは、家電製品などに組み込み、使用者が家電製品を使うときに操作したとおりに動くようにプログラムをつくるエンジニアのことでしょうか?

制御系はどういたことなんでしょうか?
制御とついているので制御するのだと思うのですが、使われる箇所としてはどういった所に使われるのでしょうか?

さっきの組み込み系でも、家電製品に”組み込ん”でも、”制御”もされているのではないでしょうか?
例えば、電子ジャーに”組み込ん”でも、温度調節なども”制御”しているのではないでしょうか?

組み込みと制御は同じような事なのでしょうか?

Aベストアンサー

○○系という言葉自体が広い概念ですので、たしかに重複する意味もありますが。
元々、系列化するものに対して○○系として区別していました。
対象が同じものであっても言い方で混乱しますね。
結論を簡単に言えば、表現の方法の違いなのですが、
1)主機能面から言えば、○○制御系
  (背景には、複雑・多様化、ネットワーク化、ユビキタス、インフラなどの課題が多い)
2)機器内部にコンピュータシステムを組み込むための技術力、対応力を強調させる場合は、組み込み系。(背景には、小型化、省電力、高速化などの課題が多い)

で、SE/PG求人ということなので、「ソフトウェア開発」に絞られます。
一般には、制御系システムの方が範囲が広く、以下のように使われるケースがあります。
「...制御系のシステム(計測・制御用ソフト、組み込み用ソフト、FA用ソフト)の開発経験者を求む....」

一般的には、
組み込み系システムとは、
 昨今の家電・電子機器・自動車(etc.)には、機器を制御するためのマイコン用ソフト・ハードが組み込まれて内蔵されている。その機器内部のコンピュータシステムを指す。組み込み系ソフトとは、機器内部のコンピュータシステムを稼動させるソフトウェアで、組み込み系システム用に開発されたソフトウェアのこと。組み込み系に対しては、PC系・UNIX系と言ったりする。機器の外部にコンピュータを接続する形式が「非組み込み系」と考えてよい。システムの構築の際、形態・方法を指す言葉。したがって、電子ジャーは、組み込み系システムであるとは言えます。

一方、制御系システムとは、広義には、機器を「制御する」システムを対象とする。狭義には、特に制御が主機能になっているものを指す。ここでの「制御系」の概念は、「組み込み系」であっても「非組み込み系」であっても構わない。すなわち、システム構築の目的や用途(機能)を強く意識した言葉。したがって、電子ジャー(炊飯)などの特定の狭い用途で主機能ではない場合には、使いません。自動車のカーナビ(位置特定)なども。敢えて「制御」を使うならば、電子ジャーの温度制御ソフトのように使われる。


制御系の実例的には
主な制御系         具体的システム例       ソフトの対象例
監視・制御系        中央監視盤、照明制御システム 制御端末用ソフト
FA系           製造ライン監視制御システム  PLC用ソフト
プロセス制御系       製鉄プラントシステム
通信・制御系        移動体通信制御システム    携帯電話、基地局
計測・制御系        排ガス濃度監視装置      濃度計測、ロギング
組み込み・制御系      DVDプレーヤシステム     モーター回転数制御
「DVDプレーヤ」では、単に「制御系」とは普通言わない。
「組み込み・制御系」もしくは単に「組み込み系」。

納得がいかないなら、「制御系」などで検索し、
ターゲットの実例を調べてください。

参考にされば、幸いです。

○○系という言葉自体が広い概念ですので、たしかに重複する意味もありますが。
元々、系列化するものに対して○○系として区別していました。
対象が同じものであっても言い方で混乱しますね。
結論を簡単に言えば、表現の方法の違いなのですが、
1)主機能面から言えば、○○制御系
  (背景には、複雑・多様化、ネットワーク化、ユビキタス、インフラなどの課題が多い)
2)機器内部にコンピュータシステムを組み込むための技術力、対応力を強調させる場合は、組み込み系。(背景には、小型化、省電力、高...続きを読む

Q「精一杯がんばります」を言い換えると?

クライアントから、かなり難しい案件を任されました。
しかし、今後につながる大切な仕事なので、良い結果を出すために全力を尽くしたいと思います。

そこで、その旨を伝えるべく、返信のメールを出す段になって、はたと困りました。

ビジネス文書なので、もちろん「精一杯がんばります」とは書けません。
「鋭意努力します」なども考えたのですが、仕事はそもそも一生懸命するのが当たり前なので、「がんばる」とか「努力する」とかいう言葉は使わない方がいいですよね。
「尽力」などは、自分のことにはあまり使わないし、傲慢な感じ(押し付けがましい感じ)がすると思います。

そこで、質問です。
謙虚な感じは残しつつ、全力で取り組むことをアピールするのに、ぴったりな表現はないでしょうか。
皆様のアドバイスをお願いいたします。

Aベストアンサー

「○○様(貴社?)のご期待に添えますよう、社員一同全力をもって取り組んでまいりたいと考えております。」

というかんじではいかがでしょうか?

Qプログラマがよく使う「hoge」「ほげ」って、プログラマ共通語?

ここ数ヶ月で初めてプログラムというものに触れたのですが、当初からずっと気になっていることがあります。

プログラマさんがよく使う「hoge」ってプログラマさんの共通語ですか?

初めて友人にプログラムを教えてもらった時、友人が「hoge」を使ったり「ほげほげ」って言っているのを「何それ(笑)」ってツッコんだんですけど、友人は良く使うので、どうやら日常的に使っているようです。
面白い言葉を使う友人だなぁと思っていたら、google等でプログラムの調べ物をしていると、「hoge」を使っているサイトが幾つも見つかりました。
私は今までプログラミングの外で生きてきて、「ほげ」という言葉を使う人を知りません。
試しにこのサイトで「hoge」で検索すると「PC技術者」のカテゴリばかり出てきます。

なぜプログラマさんには「hoge」を使う人が多いのでしょうか。
宜しくお願いします。

Aベストアンサー

専門用語を使うとこれは「メタ構文変数」と言い表せるらしいですね。
プログラム関係者が使うのはそれだけ広く知られているというだけのことで、なぜ知られてしまったのかについてはもはや探りようがないですが、とりあえず共通語として認識されている言葉です。

近いところではお役所などにある提出書類のサンプルの名前の欄に「山田太郎」とかありますよね。あれもメタ構文でしょう。
例の名前なので基本的には何でも良いので、「東京太郎」とか「大阪花子」とかで示される例は多いと思います。つまりそういう見本文を作る人には「太郎」や「花子」に特に思い入れがあってとか、規則や法律でそう明文化されているのでとか・・・ということは別になく、太郎や花子は名前の例としてよく示されるものであるということが広く日本人の共通認識になっているので、サンプルであることを分かりやすく示しているというだけのことなのです。
同様にプログラマー界でもとりあえず適当に付けた名前だよということを示すのに「hoge」を使うというのが共通認識になっているだけのことです。

Qjavaでunsignedは使えないのですか?

Eclipseを使い始めた初心者です。
short型変数を符号無しで宣言しようと思ったのですが、
赤の下線が出てしまってエラーの扱いになってしまっています。

javaではunsignedは使えないのでしょうか?
使えないのであれば、その理由と対処策を教えていただけましたら嬉しいです。
宜しくお願い致します。

Aベストアンサー

unsigned short などのような構文はありませんが、とりあえず負の値を使いたくないのなら char型を数値のように使えばよろしいかと思います。
char型のとりうる範囲は0~65535で、範囲外の数値はint型とみなされます(数値を直接代入する場合のみ)。
ただし負のintをcharにキャストすると上位ビットが欠落します。

char c;
c = 0;
c = 65535;
c = 65536; ←コンパイルエラー
c = -1; ←コンパイルエラー
c = (char)-1; ←コンパイルエラーにはならないが65535になる

Qsedの置換文字に変数を使用したいのですが・・・

あるファイルの特定の文字を変換し、上書きをする処理を行いたいのですが、sedの置換文字に変数が渡せなくて困っています。

例:
X="a"
Y="b"
echo test.txt | sed 's/${X}/${Y/g}' >test.txt

sedでは置換文字に${X}といった変数を使用することはできないのでしょうか?

Aベストアンサー

' ・・・' で囲まれた中の$はそのままドルマークです。変数展開をするなら、'・・・'で囲んではいけません。

何も囲まないか、"・・・"で囲むかです。


人気Q&Aランキング

おすすめ情報