Linux Cut 指令使用綜合指南

Linux Cut 指令使用綜合指南

Linux 中的 cut 命令是文字處理的重要實用程序,旨在從文件的每一行或管道輸入中提取特定的段。此命令不會修改原始文件,而是讀取資料並在標準輸出中顯示所需的部分。在本指南中,我們將深入研究 Linux 中 cut 命令的功能,並提供實際的真實範例來示範其用法。

探索 cut 指令

cut命令對於處理結構化文字的任何人都很有用,有助於在類別 Unix 環境中進行有效的資料操作和提取。透過根據位元組位置、字元位置、分隔符號或欄位提取行的部分,cut 對於過濾和組織 shell 腳本和命令列操作中的資料非常有用。它的應用範圍從從 CSV 檔案中檢索特定列到修剪不必要的字元或分析日誌。儘管 cut 通常直接用於文件,但在管道中使用時,它也可以與其他命令的輸出無縫互動。

cut 指令的基本語法

cut 指令很簡單,利用選項後面跟著檔名。文法如下:

cut [OPTIONS] [FILE]

在這個結構中,OPTIONS 決定了 cut 指令如何運作,讓您可以選擇欄位分隔符號(如逗號)、選擇特定欄位、設定範圍、排除缺少分隔符號的行等功能。如果未指定文件,cut 將從標準輸入讀取。此外,您可以提供多個文件,這些文件將被視為組合實體進行處理。

常用選項

剪切命令提供了多種選項來精確定位要提取的文字片段。以下是一些最常用的:

  • -f–fields=LIST:允許根據指定的分隔符號選擇特定欄位。
  • -b–bytes=LIST:從每一行擷取指定的位元組。
  • -c–characters=LIST:從每一行檢索特定字元。
  • -d–delimiter:設定自訂分隔符號而不是預設製表符。
  • –complement:輸出除指定欄位、位元組或字元之外的所有內容。
  • -s–only-delimited:跳過缺少分隔符號的行;預設包含此類行。
  • –output-delimiter:允許選擇不同的輸出分隔符,與輸入分隔符號形成對比。

-f、、-b和選項-c利用 LIST 來定義要擷取的內容。您可以指定以下內容:

  • 單一數字,例如 2。
  • 用逗號分隔的多個數字,例如 1, 3, 5。
  • 類似 2-4 的範圍(提取從 2 到 4 的值)。
  • N-表示從位置 N 提取到末端。
  • -M表示從起始點擷取至位置 M。

在 Linux 中使用 cut 指令

為了說明 cut 指令的功能,讓我們執行一些實際的範例。首先,讓我們使用 echo 指令建立一個名為「mte.csv」的範例檔案:

echo -e "empID, empName, empDesig\n101, Anees, Author\n102, Asghar, Manager\n103, Damian, CEO" > mte.csv

回顯命令

接下來,我們可以使用 cat 指令檢查檔案的內容:

cat mte.csv

顯示文件數據

值得一提的是,cut 指令僅顯示指定的輸出,而不會改變檔案本身。

按字元擷取數據

若要按位置提取字符,請使用-ccut 命令的選項:

cut -c 1, 8 mte.csv

此命令從每行中提取第一個和第八個字元:

按字元剪切

若要提取指定範圍內的字符,請應用以下命令:

cut -c 1-8 mte.csv

擷取每行中位置 1 至 8 的字元:

按範圍切割

按位元組提取

若要擷取特定位元組,請使用-bcut 指令的選項:

cut -b 1-3 mte.csv

此命令從文件的每一行中提取前三個位元組mte.csv

按位元組剪切

按字段(列)提取

要從文件中提取整個字段,請使用帶有-f-d選項的 cut 命令:

cut -d', ' -f2 mte.csv

在此命令中,-d', '指定逗號作為分隔符,而-f2表示 cut 應從每行中提取第二個欄位:

按字段剪切

在 cut 中實作自訂分隔符

儘管 cut 預設使用製表符作為分隔符,但如果欄位由不同的字元分隔,請使用-d指定正確的字元。例如,要從空格分隔的句子中提取第五個單詞,您可以使用:

echo "Hey! Geeks Welcome to Maketecheasier.com" | cut -d ' ' -f 5

使用自訂分隔符號剪切

提取過程中排除特定字段

--complement透過使用cut 命令的選項,您可以在從文件​​中提取文字時省略某些欄位。此選項指定 cut 應輸出除指定欄位之外的所有欄位:

cut -d', ' -f1 mte.csv --complement

此命令跳過第一列並返回其餘內容:

補碼切割

修改預設輸出分隔符

預設情況下,擷取欄位時,cut 指令會在輸出中保留輸入分隔符號。但是,您可以使用以下--output-delimiter選項來變更輸出分隔符號:

cut -d', ' -f1-3 --output-delimiter='-' mte.csv

此命令使用連字符作為輸出中的分隔符號:

自訂輸出分隔符

將 cut 與其他 Linux 指令結合使用

cut 指令也可以透過管道符 | 與其他 Linux 指令結合使用。象徵。例如,以下命令從who命令的每個輸出行中提取前五個字元:

who | cut -c 1-5

與誰一起剪輯

在另一個範例中,您可以將 cut 命令與 head 一起使用來顯示「mte.csv」的前兩行,僅提取 empName 和 empDesig 欄位:

head -n 2 mte.csv | cut -d ', ' -f2, 3

用頭砍

使用 Linux cut 指令瀏覽不規則資料格式

當處理格式正確且具有一致分隔符號(如逗號或製表符)的資料時,cut 指令表現優異。但是,如果遇到間距不一致或混合分隔符號的文件,單獨應用 cut 可能會產生不令人滿意的結果。為了解決這些情況,通常最好使用tr或 之類的命令提前清理數據sed,以確保 cut 可以有效地提取正確的部分。

管理多餘空間

考慮一個名為“mteData.txt”的文件,其中字段由不同的空格分隔:

cat mteData.txt

顯示範例數據

由於 cut 預期單一分隔符,因此tr在應用 cut 之前利用它對間距進行標準化:

cat mteData.txt | tr -s ' ' | cut -d ' ' -f1-2

此命令處理“mteData.txt”,使用將多個空格替換為一個空格tr,然後提取前兩個欄位:

用 Tr 切割

管理混合分隔符

如果檔案使用空格和逗號的組合,請使用 來規範格式sed。例如,名為「mteData1.txt」的檔案包含:

cat mteData1.txt

顯示範例內容

利用sedcut 將所有空格轉換為逗號,然後擷取第一個和第三個欄位:

sed 's/ /, /g' mteData1.txt | cut -d ', ' -f1, 3

使用 Sed 進行剪切

結論

在本文中,我們揭示了 Linux cut 命令的功能,它是從檔案或管道輸入中提取資料的重要工具。透過其簡單的語法,您可以毫不費力地根據指定的分隔符號來取得字元、位元組或欄位。此外,我們還展示瞭如何將 cut 命令與其他實用程式(如trsed和)結合起來head管理不乾淨的資料並實現更有效率的輸出。無論您處理的是 CSV 檔案、分析日誌還是清理數據,cut 命令都是類別 Unix 環境中文字處理不可或缺的資產。

常見問題

1. Linux 中 cut 指令的主要用途是什麼?

Linux 中的 cut 命令主要用於從檔案或其他命令的輸出中提取特定的文字部分。它使用戶能夠根據分隔符號、位元組位置或字元位置有效地操作和格式化資料。

2.我可以將 cut 指令與其他 Linux 指令結合使用嗎?

是的! cut 指令可以使用管道符號 (|) 與其他 Linux 指令無縫整合。這允許強大的資料處理,使您能夠過濾和格式化來自各種命令的輸出。

3.如何在使用 cut 指令時指定自訂分隔符號?

您可以使用-d選項後面跟著所需的分隔符號來指定自訂分隔符號。例如,要使用逗號作為分隔符,可以使用-d', '

來源和圖片

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *