1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ターミナルでファイルを閲覧する基本をまとめてみる

1
Posted at

CLIで「素早く読む・探す・追う」を最短でこなせるようにまとめてみました。
まだ知見が浅いので、「このコマンドも載せた方がいい」「この使い方も便利」などあればぜひコメントお願いします。


対象環境と表記

  • Linux/macOS/Git Bash:bash 例を掲載しています
  • Windows PowerShell:PowerShell 例を掲載しています

文字コードが崩れる場合(Windows)はchcp 65001 でUTF-8に切り替えてみてください。


一気に表示(全体を見る)

  • bash:cat
  • PowerShell:Get-Content
# bash
cat file.txt
cat -n file.txt  # 行番号付きで表示
# PowerShell
Get-Content file.txt
Get-Content file.txt | nl  # 行番号を付けたい場合(nlがある環境の場合)

大きなファイルは less での閲覧が快適だと思います(次章)。


ページ送りで読む(少しずつ、検索も可)

less(スクロール、検索、行番号、色対応が便利)

# bash(less推奨)
less file.txt
less -N file.txt   # 行番号表示
less -R file.log   # ANSIカラーを解釈(grep --color など)
# PowerShell(Git for Windows 等で less が同梱されていることが多い)
less file.txt

less の基本操作

  • スクロール:Space/↓/↑, b(1ページ戻る)
  • 先頭/末尾:g(先頭), G(末尾)
  • 検索:/キーワードn(次へ), N(前へ)
  • 終了:q
  • ログ追尾:less +F file.logCtrl+Cで追尾解除して通常閲覧に戻る)

moreというものもあるらしい

more file.txt

先頭・末尾だけ見る(ざっと確認)

  • 先頭:head
  • 末尾:tail
  • PowerShell:Get-Content -Head N / Get-Content -Tail N
head -n 20 file.txt   # 先頭20行

tail -n 50 file.txt   # 末尾50行

head/tailは既定では10行を表示する

Get-Content file.txt -Head 20
Get-Content file.txt -Tail 50

ログを追尾(リアルタイム監視ができる)

  • bash:tail -f-Fは名前が変わっても追う)
  • PowerShell:Get-Content -Wait-Tailと併用すると最後から)
tail -f app.log
# 末尾から10行表示し以後を追尾
Get-Content app.log -Tail 10 -Wait

キーワードに絞って追尾

# bash
tail -f app.log | grep ERROR --color=auto
# PowerShell
Get-Content app.log -Wait | Select-String -Pattern "ERROR"

内容を検索する(横断もできる)

  • bash:grep(色付け --color=auto、再帰 -r
  • PowerShell:Select-String(別名 sls
# 単一ファイル
grep -n "keyword" file.txt  # 行番号付き

# ディレクトリを再帰的に
grep -rn "keyword" ./logs

# 大文字小文字を無視
grep -rin "keyword" ./src
# 単一ファイル
Select-String -Path file.txt -Pattern "keyword" -CaseSensitive:$false

# ディレクトリ再帰
Select-String -Path .\logs -Pattern "keyword" -Recurse

エディタで閲覧(読み取り専用で安全に見る)

vi/vim は閲覧にも便利。読み取り専用で開けば誤編集を防げます。

# 読み取り専用
vi -R file.txt
vim -R file.txt

基本操作(ノーマルモード)

  • 移動:gg(先頭), G(末尾), :行番号(指定行へ)
  • 検索:/キーワードn(次へ), N(前へ)
  • 行番号表示::set number(非表示は:set nonumber
  • 終了::q(変更なし), :q!(破棄), :wq(保存して終了)

Windowsで vim を使うには Git for Windows や NeoVim/WSL の導入が手軽です。


よく使えそうなもの

# 直近のエラーだけ見る(例:末尾100行でERRORを強調)
tail -n 100 app.log | grep --color=auto -n "ERROR"

# ログを追いながら特定語を強調表示させる
tail -f app.log | grep --color=auto -E "ERROR|WARN"

# 長い1行ログを折り返さずに読む(矢印で横スクロール)
less -RS long.log

# ファイルの差分を行単位でざっと見る
diff -u old.txt new.txt | less -R
# 直近のエラーだけ見る
Get-Content app.log -Tail 100 | Select-String -Pattern "ERROR"

# 追いながら特定語をハイライトさせる
Get-Content app.log -Wait | Select-String -Pattern "ERROR|WARN"

# 大きいファイルもページングしながら確認できる
Get-Content big.txt | Out-Host -Paging

まとめ

  • 全体を見る:cat / type / Get-Content
  • 快適に読む:less(検索・ページ送り・追尾)
  • 先頭/末尾:head / tail(PowerShellは -Head / -Tail
  • 追尾:tail -f / Get-Content -Wait
  • 検索:grep / Select-String
  • 読み取り専用エディタ:vi -R file/vim -R file

冒頭にも記載しましたが、まだ知見が浅いので、「このコマンドも載せた方がいい」「この使い方も便利」などあればぜひコメントお願いします。

1
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?