LoginSignup
1
2

More than 5 years have passed since last update.

Linux コマンド2 (cat,grep)

Last updated at Posted at 2018-09-29

cat -concatenate-

$ cat [オプション] ファイルパス

ファイルの内容を出力し、確認することができます。
しかしGUIが入った環境でなかったりすると長文のテキストが書かれたものが見にくいので、表示だけに関しては他コマンドのmorelessを使って表示することが多いかもしれません。

  • オプション
    • -n
      次のように左に行数が出力されます。
1 aaa
2 bbb
3 ccc
...

ただ出力して使うことより、cat-concatenate-(連結)とあるようにXとYのファイルを連結して新しいファイルを作成する>「リダイレクト」や、XにYの内容を追記する>>「アペンド」を使うことが多いみたいです。
リダイレクションパイプの説明は別途記事にしようと思います。

$ cat X.txt Y.txt > Z.txt
$ cat Y.txt >> X.txt

リダイレクト結果 : X.txt,Y.txtがそのまま残って、XにYを追記したZ.txt作成。
アペンド結果 : XにYの内容を追記したものをX.txtに上書き,Y.txtはそのまま。
リダイレクトのZ.txtとアペンドのX.txtの中身は同じです。

more、less

more ファイル名
less ファイル名

前述で話した通り、ファイルを表示するコマンドでcatと違ってページング機能があります。

  • more
    一定の量をページとして分けて表示し、次ページに飛ぶには「スペース」キー、ページ戻りは「b」キーで操作します。 最後のページで「スペース」キーを押すと終了となります。
  • less
    moreとの違いは上下にスクロールできるページング機能なことです。 「q」キーを押すと終了になります。

grep

$ grep [オプション] 検索条件 ファイルパス

catは指定したファイルの内容を出力でしたが、こちらはその中の文字列を探し出しそこだけを出力します。
検索条件には正規表現を用いることができます。
これも検索内容をリダイレクションやパイプを用いて運用することが多いので簡潔なものだけを紹介します。

$ grep test sample.txt

sample.txt内のtestという文字列が入った行が出力されます。
もしtestという文字列がなかった場合エラーがでます。
この「標準出力」ではない「標準エラー出力」はリダイレクトの時に注意が必要となります。

  • オプション
    • -i
      検索条件とファイル双方で、英大文字の区別を行わない。(A=a)
    • -v
      検索条件とマッチしなかった行を選択する。

正規表現

文字列のパターンを表現する表記法。
よく使いそうなものをいくつか。

  • ^
    行の先頭。
  • .
    任意の一文字。
    ca.で検索をするとcat、car、capなどが対象となる。
  • *
    直前の文字の0回以上繰り返し。
    ca*tで検索するとct、cat、caaaatなどが対象となる。
  • +
    直前の文字の1回以上の繰り返し。
    ca+tで検索するとcat、caaaatなどが対象となる。
  • ?
    直前の文字は省略可能。
    bes?tで検索するとbetまたはbestが対象となる。
  • [A-Z]
    AからZまでの1文字。
  • [^A-C]
    AからC以外の1文字。
  • (A|B)
    AかBどちらか。

エスケープシーケンス

文字列の中に制御コードなどを混在させるときに使う特殊記法。
< > { } ; & | ^ ? * $ ` ' " \ ! 、改行、タブ、スペースなどが対象。
これらの前に¥をつける。
または""で囲むと文字列として扱われる。
例外として""の中でも$ ' ¥は更に¥をつける必要がある。


参考・引用

WEB
IT用語辞典 e-Words
正規表現とは
Linux die net

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2