質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
UNIX

UNIXとは、AT&Tのベル研究所で開発されたコンピューター用のマルチユーザー・マルチタスクのオペレーションシステム(OS)です。政府や教育機関や研究所で広範囲に採用されています。

Q&A

解決済

2回答

3130閲覧

UNIXのgrepコマンドの複数条件の検索方法

ayu

総合スコア212

UNIX

UNIXとは、AT&Tのベル研究所で開発されたコンピューター用のマルチユーザー・マルチタスクのオペレーションシステム(OS)です。政府や教育機関や研究所で広範囲に採用されています。

0グッド

0クリップ

投稿2015/09/08 16:23

こちらのサイトでgrepの複数条件の問題をやっております。

http://pen.agbi.tsukuba.ac.jp/~torarimon/?%A5%C6%A5%AD%A5%B9%A5%C8%BD%E8%CD%FD

課題: このテキストファイルの中から、FILENAMEという文字列を含むが、.metという文字列を含まない行を抜き出せ。(.metは説明ファイルなのでとりあえず邪魔なので消して表示したい)

こちらの記述に対して、

grep FILENAME MODIS_archive | grep -v .met MODIS_archive

と記入してますが、「FILESIZE」など、余計なものがひっぱられます。
ちなみに「MODIS_archive」はファイル名です。

grep FILENAME MODIS_archive

だけだと、きちんとFILENAMEのみ拾ってくれます。
ただし、.metまで入っているので、それを除外したいというのが問題です。

複数条件の場合の記述の仕方が間違っておりますでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

複数条件の場合の記述の仕方が間違っておりますでしょうか。

はい。間違ってます。

grep FILENAME MODIS_archive | grep -v .met

ですね。

grep FILENAME MODIS_archive | grep -v .met MODIS_archive

だと、

grep -v .met MODIS_archive

と同じです。何故同じになるかは、「パイプ」についてよく考えてみてください。

投稿2015/09/08 16:28

otn

総合スコア84423

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ayu

2015/09/09 14:36

パイプについての理解ができておりませんでした。 ありがとうございます。
guest

0

次の pipe と grep の使い方が理解できますでしょうか?

$ grep FILENAME MODIS_archive | grep -v ".met" > 1.txt $ grep -v ".met" MODIS_archive | grep FILENAME > 2.txt $ diff 1.txt 2.txt

1行目は、 FILENAME を含む行を検索し、その結果から .met を含まない行を取り出しています。
その結果を 1.txt に保存しています。

2行目は、.met を含まない行を検索し、そも結果から FILENAME を含む行を取り出しています。
その結果を 2.txt に保存しています。

3 行目は 1.txt と 2.txt を比較しています。2つのファイルの内容が一致しているはずです。

投稿2015/09/08 21:34

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ayu

2015/09/09 14:37

返事が遅くなりましたが、丁寧な解説ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問