Categories: Linux

Linux 印出檔案特定行內容教學與範例

介紹如何在 Linux 使用 headtailsedawk 指令,擷取檔案中的特定幾行內容。

產生測試用檔案

使用以下 Bash 指令稿產生 100 行的測試檔案:

#!/bin/bash
for i in {1..100}; do
  echo "Line $i"
done > file.txt

產生的檔案內容會像這樣:

# 顯示檔案內容的前三行
head -n 3 file.txt
Line 1
Line 2
Line 3

印出特定行內容

在 Linux 命令列中,若要印出檔案中特定行的內容,有好幾種方式可以使用,最基本的就是將 headtail 搭配使用,例如顯示檔案內容的第 25 行:

# 顯示檔案內容的第 25 行
head -25 file.txt | tail +25
Line 25

第二種方式是使用 sed 指令:

# 顯示檔案內容的第 25 行
sed -n '25p' file.txt
Line 25

第三種方式是使用 awk 指令:

# 顯示檔案內容的第 25 行
awk 'NR==25' file.txt
Line 25

亦可使用 perl 來處理:

# 顯示檔案內容的第 25 行
perl -ne 'print if $.==25' file.txt
Line 25

印出特定行範圍內容

若要顯示特定的行範圍,也可以用類似的方式處理。

headtail 搭配使用,顯示檔案內容的第 20 行到第 25 行:

# 顯示檔案內容的第 23 行到第 25 行
head -25 file.txt | tail +23
Line 23
Line 24
Line 25

使用 sed 指令顯示檔案內容的第 23 行到第 25 行:

# 顯示檔案內容的第 23 行到第 25 行
sed -n '23,25p' file.txt
Line 23
Line 24
Line 25

使用 awk 指令顯示檔案內容的第 23 行到第 25 行:

# 顯示檔案內容的第 23 行到第 25 行
awk 'NR>=23 && NR <=25' file.txt
Line 23
Line 24
Line 25

使用 perl 顯示檔案內容的第 23 行到第 25 行:

# 顯示檔案內容的第 23 行到第 25 行
perl -ne 'print if $.>=23 and $.<=25' file.txt
Line 23
Line 24
Line 25

參考資料:Linux Handbook

Share
Published by
Office Guide

Recent Posts

Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤

本篇介紹如何在 Python ...

1 年 ago

Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例

本篇介紹如何在 Ubuntu ...

1 年 ago

Linux 網路設定 ip 指令用法教學與範例

本篇介紹如何在 Linux 系...

1 年 ago

Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例

介紹如何在 Linux 系統中...

1 年 ago