cut命令用法

cut?是 Linux/Unix 系統中一個用于按列提取文本內容的命令,常用于處理結構化文本(如 CSV、日志、配置文件等)。它通過分隔符、字符位置或字節位置來切割文本,提取指定部分。


核心功能

  1. 按字段(列)提取:用分隔符(如逗號、冒號)將文本分割成多列,提取指定列。

  2. 按字符位置提取:直接根據字符的位置提取內容(如第 1-5 個字符)。

  3. 按字節提取:類似字符位置,但按字節處理(對 ASCII 文本效果相同,但對多字節字符需謹慎)。


常用參數

參數作用示例
-d指定字段分隔符(默認是制表符)-d ','?用逗號分隔
-f選擇指定字段(列)-f 1,3?提取第 1 和 3 列
-c按字符位置提取-c 1-5?提取第 1 到 5 個字符
-b按字節位置提取-b 2-4?提取第 2 到 4 個字節
--complement反向選擇(提取未指定的部分)-f 2 --complement?提取除第 2 列外的所有內容

使用示例

1.?按分隔符提取字段

假設文件?data.csv?內容為:

Name,Age,City
Alice,25,Beijing
Bob,30,Shanghai
  • 提取第 1 列(姓名):

    cut -d ',' -f 1 data.csv
    Name
    Alice
    Bob
  • 提取第 2 和 3 列(年齡和城市):

    cut -d ',' -f 2,3 data.csv

    輸出:

    Age,City
    25,Beijing
    30,Shanghai

2.?按字符位置提取

假設文件?text.txt?內容為:

ABCDEFGHIJKLMN
  • 提取第 3 到 6 個字符

    cut -c 3-6 text.txt
    CDEF

3.?處理系統文件
  • 提取?/etc/passwd?中的用戶名(第 1 列,冒號分隔):

    cut -d ':' -f 1 /etc/passwd

    輸出:

    root
    daemon
    bin
    ...(系統用戶列表)

注意事項

  1. 分隔符與字段

    • 默認分隔符是制表符,需用?-d?指定其他字符(如?-d ':')。

    • 如果字段包含分隔符本身(如?"Hello,World"),cut?無法直接處理,需改用?awk?或手動處理。

  2. 多字節字符問題

    • -c?按字符位置切割,適用于 UTF-8 文本。

    • -b?按字節切割,處理非 ASCII 字符(如中文)時可能截斷亂碼。

  3. 與?awk?的區別

    • cut?更簡單高效,適合固定分隔符的簡單場景。

    • awk?支持正則表達式分隔符、復雜邏輯,適合靈活處理文本。


經典組合用法

  • 提取日志中的時間戳(假設時間在第 1-15 個字符):

    cat app.log | cut -c 1-15
  • 提取 IP 地址(假設 IP 是第 2 列,空格分隔):

    echo "192.168.1.1 404 GET /api" | cut -d ' ' -f 1
  • 反向提取(排除第 2 列):

    cut -d ',' -f 2 --complement data.csv

總結

cut?是一個輕量級文本處理工具,適合快速提取結構化數據的特定部分。對于復雜需求(如動態分隔符、條件判斷),建議使用?awk?或?sed

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/75863.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/75863.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/75863.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

美國mlb與韓國mlb的關系·棒球9號位

MLB(Major League Baseball,美國職業棒球大聯盟)作為全球最高水平的職業棒球聯賽,與韓國市場流行的“MLB”時尚品牌之間存在著授權合作關系,但兩者在業務范疇和品牌定位上存在顯著差異。 一、品牌授權背景:…

從吉卜力漫畫到藝術創造:GPT-4o多種風格繪圖Prompt大全

在3月底,GPT-4o掀起了一陣吉卜力繪圖浪潮,大家紛紛輸入一張圖片,讓4o模型進行風格化遷移,其中吉卜力風格的漫畫在社交媒體上最為火熱。在大家爭議4o的訓練數據是否侵權和4o背后的技術原理的時候,我們先來玩一玩&#x…

Leetcode 3510. Minimum Pair Removal to Sort Array II

Leetcode 3510. Minimum Pair Removal to Sort Array II 1. 解題思路2. 代碼實現 題目鏈接:3510. Minimum Pair Removal to Sort Array II 1. 解題思路 這一題和題目3507. Minimum Pair Removal to Sort Array I本質上是同一道題目,唯一的區別在于時間…

【數學建模】(時間序列模型)ARIMA時間序列模型

ARIMA時間序列模型詳解及常見時間序列模型概覽 文章目錄 ARIMA時間序列模型詳解及常見時間序列模型概覽1 引言2 ARIMA模型的基本概念3 ARIMA模型的組成部分詳解3.1 AR模型 (自回歸模型)3.2 MA模型 (移動平均模型)3 I (差分) 4 ARIMA模型的建模步驟5 Python實現ARIMA模型6 常見時…

嵌入式AI開發者職業成長路線圖

嵌入式AI開發者職業成長路線圖 一、核心技術能力構建 1. 深度學習框架 TensorFlow/TensorFlow Lite:適合部署到嵌入式設備PyTorch:研究和原型開發ONNX:模型轉換與部署 2. 模型理解與應用 卷積神經網絡(CNN):圖像識別、目標檢…

單元測試之mockito

簡介 mockito是一款模擬測試框架,用于Java開發中的單元測試。通過mockito,可以創建和配置一個對象,通過它來替換對象的外部依賴。 作用:模擬一個類的外部依賴,保證單元測試的獨立性。例如,在類A中會調用類…

Oracle數據庫數據編程SQL<5 正則表達式函數*****>

Oracle 提供了一組強大的正則表達式函數,用于在 SQL 和 PL/SQL 中進行復雜的模式匹配和文本處理。這些函數基于 POSIX 標準正則表達式,功能強大且靈活。 目錄 一、Oracle 正則表達式函數概覽 二、函數詳解及示例 1. REGEXP_LIKE 2. REGEXP_INSTR 3. REGEXP_SUBSTR 4. …

el-tabs添加按鈕增加點擊禁止樣式

前置文章 一、vue使用element-ui自定義樣式思路分享【實操】 二、vue3&ts&el-tabs多個tab表單校驗 現狀確認 點擊添加按鈕,沒有點擊樣式,用戶感知不明顯沒有限制最大的tab添加數量,可以無限添加 調整目標&代碼編寫 調整目標…

DB-Mysql中TIMESTAMP與DATETIME的區別

文章目錄 ?存儲范圍??時區處理?存儲空間?默認值和自動更新??零值處理?適用場景?總結 在MySQL中,TIMESTAMP和DATETIME是兩種常用的日期時間數據類型,它們雖然都用于存儲日期和時間,但在多個方面存在顯著差異。以下是它們的主要區別&a…

Spring 中有哪些設計模式?

🧠 一、Spring 中常見的設計模式 設計模式類型Spring 中的應用場景單例模式創建型默認 Bean 是單例的工廠模式創建型BeanFactory、FactoryBean抽象工廠模式創建型ApplicationContext 提供多個工廠接口代理模式結構型AOP 動態代理(JDK/CGLIB)…

C# Winform 入門(3)之尺寸同比例縮放

放大前 放大后 1.定義當前窗體的寬度和高度 private float x;//定義當前窗體的寬度private float y;//定義當前窗臺的高度 2.接收當前窗體的尺寸大小 x this.Width;//存儲原始寬度ythis.Height;//存儲原始高度setTag(this);//為控件設置 Tag 屬性 3.聲明方法,獲…

從零開始的編程-java篇1.6.3

前言: 通過實踐而發現真理,又通過實踐而證實真理和發展真理。從感性認識而能動地發展到理性認識,又從理性認識而能動地指導革命實踐,改造主觀世界和客觀世界。實踐、認識、再實踐、再認識,這種形式,循環往…

【Redis】數據的淘汰策略

目錄 淘汰策略方案(8種) LRU和LFU策略的區別 使用建議 手搓LRU算法 方式一 方式二 大家好,我是jstart千語。今天和大家回來聊一下redis,這次要講的是它的淘汰策略。為什么需要淘汰策略呢,就是當redis里面的內存占…

【前端】Node.js一本通

近兩天更新完畢,建議關注收藏點贊。 目錄 復習Node.js概述使用fs文件系統模塊path路徑模塊 http模塊 復習 為什么JS可以在瀏覽器中執行 原理:待執行的JS代碼->JS解析引擎 不同的瀏覽器使用不同的 JavaScript 解析引擎:其中,C…

【AI論文】JavisDiT: 具備層次化時空先驗同步機制的聯合音視頻擴散Transformer

摘要:本文介紹了一種新型的聯合音頻-視頻擴散變換器JavisDiT,該變換器專為同步音頻-視頻生成(JAVG)而設計。 基于強大的擴散變換器(DiT)架構,JavisDiT能夠根據開放式用戶提示同時生成高質量的音…

Java-實現公有字段自動注入(創建人、創建時間、修改人、修改時間)

文章目錄 Mybatis-plus實現自動注入定義 MetaObjectHandler配置 MyBatis-Plus 使用 MetaObjectHandler實體類字段注解使用服務類進行操作測試 Jpa啟用審計功能實現自動注入添加依賴啟動類啟用審計功能實現AuditorAware接口實體類中使用審計注解 總結 自動注入創建人、創建時間、…

金融機構開源軟件風險管理體系建設

開源軟件為金融行業帶來了創新活力的同時,也引入了一系列獨特的風險。金融機構需要構建系統化的風險管理體系,以識別和應對開源軟件在全生命周期中的各種風險點。下面我們將解析開源軟件在金融場景下的主要風險類別,并探討如何建立健全的風險…

圖形渲染中的定點數和浮點數

三種API的NDC區別 NDC全稱,Normalized Device Coordinates Metal、Vulkan、OpenGL的區別如下: featureOpenGL NDCMetal NDCVulkan NDC坐標系右手左手右手z值范圍[-1,1][0,1][0,1]xy視口范圍[-1,1][-1,1][-1,1] GPU渲染的定點數和浮點數 定點數類型&a…

同花順客戶端公司財報抓取分析

目標客戶端下載地址:https://ft.51ifind.com/index.php?c=index&a=download PC版本 主要難點在登陸,獲取token中的 jgbsessid (每次重新登錄這個字段都會立即失效,且有效期應該是15天的) 抓取jgbsessid 主要通過安裝mitmproxy 使用 mitmdump + 下邊的腳本實現監聽接口…

QT工程建立

打開軟件新建一個工程 選擇chose 工程命名,選擇保存路徑,可以自己選擇,但是不要有中文路徑 默認的直接下一步 任意選一個下一步 點擊完成 之后是這個界面,點擊右下角的綠色三角形編譯一下 實驗內容 添加類 第一個是建立cpp和.h文件…