2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

head・tailコマンドの組み合わせで開始行と終了行を指定する方法

Last updated at Posted at 2022-04-01

用途として、長いファイルサイズのログファイルを分析するときなどに。

やり方

headコマンドとtailコマンドを組み合わせる。

# まず開始・終了行数を調べておく (大量ヒットする場合はheadを付けておくと良い)
grep -n '${検索ワード}' ${ファイル名} | head

# 指定範囲でファイルを取得する
head ${ファイル名} -n ${終了行数} | tail -n ${終了行数 - 開始行数 + 1}

実行例

ログファイルに見立てたファイルを作成しておく。

logfile.log
1行目
2行目
3行目
4行目
5行目
6行目
7行目
8行目
9行目
10行目

例えば 3~7行目を取得する 場合、

# 開始・終了行数を検索しておく (今回の例だと検索するまでもないが・・・)
$ grep -n '3行目' logfile.log | head
3:3行目
$ grep -n '7行目' logfile.log | head
7:7行目

# 指定範囲でファイルを取得
# headで 終了行数7 | tailで 終了行数7 - 開始行数4 + 1 → 5
$ head logfile.log -n 7 | tail -n 5
3行目
4行目
5行目
6行目
7行目

見事3~7行目が取得できた🍻

図解

        head -n 7  # 上から7行                
1      | 1       |                            
2      | 2       |      tail -n 5  # 下から5行
3      | 3       |     | 5       |            
4   →  | 4       |  →  | 4       |            
5      | 5       |     | 3       |            
6      | 6       |     | 2       |            
7      | 7       |     | 1       |            
8                                             
9                                             
10                                            
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?