【Linux】ファイルの中身を表示するコマンド一覧-cat/less/nl/head/tail/sort/uniq/cut

この記事からわかること
- Linux:ファイルの中身を表示するコマンド
- cat/less/nl/head/tail/sort/uniq/cut/viコマンドの特徴と注意点
index
[open]
\ アプリをリリースしました /
ファイルの中身を表示するコマンド一覧
コマンドライン(CUI)操作でファイルの中身を確認するコマンドをまとめていきます。
ファイル表示コマンドの種類と特徴
- catコマンド:複数のファイルを連結して表示
- lessコマンド:ページャ機能で表示
- nlコマンド:ファイルに行番号をつけて表示
- headコマンド:ファイルの先頭X行を表示
- tailコマンド:ファイルの末尾X行を表示
- sortコマンド:ファイルの中身をソートして表示
- uniqコマンド:重複している行をまとめて表示
- cutコマンド:ファイルの中身を区切り文字単位で抜き出して表示
- viコマンド:編集できる状態で表示
これらのコマンドの引数に指定するのはカレントディレクトリ配下に該当ファイルがある場合はファイル名のみ記述します。別階層のファイルは絶対パスや相対パスで指定することも可能です。
catコマンドの使い方
cat
コマンドはファイルの中身を全て表示するコマンドです。catはconCATenate(:連結)の略称です。引数に指定されたファイル名(パス)の中身を表示し、複数のファイルを指定された場合は連結して表示させることができることからこの名称になっています。
複数のファイルを指定する
コマンドラインの表示領域より中身の場合が大きいとテキストファイルの一番下側まで自動でスクロールされた状態になります。上記は例として上側を表示しましたが、実際は以下のようになります。
オプション
オプション | 役割 | 同意のコマンド |
---|---|---|
-n | 行に番号を振る(空白行にも振る) | nl -b a |
-b | 行に番号を振る(空白行には振らない) | nl (-b t) |
lessコマンドの使い方
less
コマンドはファイルの中身をページャ機能を使って表示するコマンドです。ページャ機能とはページ形式に展開する機能でコマンドを入力することで表示部分を切り替えることができるようになります。
一番下に:
が表示されマウスによるスクロールや↓
キーなどで表示部分を操作できます。最後まで表示すると:
が(END)
にかわります。画面を閉じるときはq
キーを押して終了できます。
キー | 役割 |
---|---|
↑キー | 1行上にスクロール |
↓キー | 1行下にスクロール |
Space(空白)キー | 1ページ下にスクロール |
Ctrl + b キー | 1ページ上にスクロール |
q | 終了 |
パイプを使った複数コマンド
less
コマンドはコマンドを複数列挙できる|
(パイプ)と併用して使われることが多いです。
コマンドが長めの結果を表示する際に| less
とすることで見やすくすることができるようになります。
nlコマンドの使い方
head
コマンドはファイルの中身に行番号をつけて表示できるコマンドです。空白列はカウントされないので注意してください。
オプション
オプション | 役割 |
---|---|
-b | 行番号の形式を指定する |
-h | ヘッダに行番号の形式を指定する |
-f | フッタに行番号の形式を指定する |
形式 | 役割 |
a | 空白行も含む全ての行 |
t | 空白行以外の行 |
n | 行番号を付与しない |
headコマンドの使い方
head
コマンドはファイルの中身の先頭だけを表示できるコマンドです。デフォルトは先頭10行ですがオプションとして行数を指定することが可能です。空白行も含んだ行数になっている点に注意してください。
オプション
オプション | 役割 |
---|---|
-行数 | 指定した行数を抜き出す |
-n 行数 | 指定した行数を抜き出す(-行数と同義) |
-c バイト数 | 指定したバイト数を抜き出す |
tailコマンドの使い方
tail
コマンドはファイルの中身の末尾だけを表示できるコマンドです。headコマンドと同じくデフォルトは末尾10行ですがオプションとして行数を指定することが可能です。
ファイルの真ん中だけを抜き出す
head
コマンドとtail
コマンドを|
(パイプ)を使って使用することでファイルの真ん中(例:6行〜10行目)を抜き出すと言ったことも可能になります。
最初にhead
コマンドで先頭10行を切り出しパイプで繋げたtail
コマンドでその10行から末尾5行を取り出すといった方法です。
sortコマンドの使い方
sort
コマンドはファイルの中身を並び替えて表示できるコマンドです。デフォルトは昇順に並び替えられるので降順にしたい場合はオプションで-r
を指定します。
中身の行単位で並び替えが可能で、先頭1文字目の値をキーにソートを行います。例えば文字列のみの場合は以下のようになります。
空白行が一番上に、あとは記号とアルファベットの並び順に並び替えられます。
先頭文字が数値の場合
先頭1文字目が数字の場合だとよりわかりやすい並び替えが可能です。しかし1文字目がキーになっているので2桁などの場合は正しく動作しないので注意してください。
複数桁の数値とする
複数桁の数値として認識させるにはオプションで-n
を指定します。
sortのオプション一覧
オプション | 役割 |
---|---|
-b (--ignore-leading-blanks) | 行頭の空白を無視 |
-f (--ignore-case) | 大文字小文字を区別しない |
-r (--reverse) | 降順 |
-t (--field-separator) | 項目の区切りを指定 |
-k (--key) | キーを指定 |
-n (--numeric-sort) | 数値として認識 |
区切り文字はカンマで4番目のフィールドを基準に数値として昇順にソート
uniqコマンド
sort
コマンドと併用して使われることの多いuniq
コマンドは重複している行を1行にまとめて表示させるコマンドです。
uniq
コマンドは重複している行が並んでいないと(ソートがかかった状態)でないと機能しません。なので先に|(パイプ)
を使用してソートをかけておき、その後に重複しているファイルを1行にまとめます。
オプション:-d 重複している行のみ出力
オプション:-u 重複していない行のみ出力
cutコマンド
cut
コマンドはファイルの中身を指定した区切り文字ごとに抜き出せるコマンドです。特定の区切り文字で区切られた項目を「フィールド」と呼び指定した第n番目のフィールドを抜き出すことができます。
区切り文字はオプション-d
で指定し、取り出したいフィールドはオプション-f
で指定できます。複数フィールド取り出す時はカンマで繋いで指定できます。
このコマンドはファイルの中身が特定のフォーマットである場合に利用できます。しかし区切り文字として使用できるのは1文字までなので少し複雑なフォーマット(JSONなど)だと扱いにくいかもしれません。
括弧や文字などを区切り文字に指定する場合は""
(ダブルクォーテーション)で囲みます。
各行から文字位置を指定して取り出す(-c)
viコマンドの使い方
vi
コマンドはファイルの中身を編集モードで表示できるコマンドです。vi(Vim)エディタと呼ばれる特殊な編集エディタとしてファイルの中身を表示させ、実際にコマンドライン上から編集、保存が可能です。
viエディタにはコマンドモードとインサートモードの2つがあり、デフォルトはコマンドモードになっています。i
キーを押すとインサートモードに切り替わり一番下に-- INSERT --
と表示されます。
コマンドモードは理解しないと使えませんがインサートモードではメモ帳などを扱うように編集できます。
より詳しい使い方はこちらの記事を参考にしてください。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。
おすすめ記事:Linuxの資格
LPIC試験の申し込み方法と学習ロードマップ(レベル1:101/102)