在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux cut命令詳解

Linux愛好者 ? 來源:良許 ? 2020-08-14 16:23 ? 次閱讀

cut命令在Linux和Unix中的作用是從文件中的每一行中截取出一些部分,并輸出到標準輸出中。我們可以使用cut命令從一行字符串中于以字節,字符,字段(分隔符)等單位截取一部分內容出來。

在本文中,我們通過一些例子來了解cut命令的使用,這些使用方法在我們的日常工作中也是非常常用的。

Cut 命令和語法

cut命令的基本語法如下:

$ cut OPTION... [FILE]...

我們先來了解一下cut的一些選項,cut命令必須要指定選項才能執行。

-f: 提取指定的字段,cut命令使用Tab作為默認的分隔符。

-d:Tab是默認的分隔符,使用這一選項可以指定自己的分隔符。

-b: 提取指定的字節,也可以指定一個范圍。

-c: 提取指定的字符,可以是以逗號分隔的數字的列表,也可以是以連字符分隔的數字的范圍。

–complement: 補充選中的部分,即反選。

–output-delimiter: 修改輸出時使用的分隔符。

--only-delimited: 不輸出不包含分隔符的列。

我們以如下的名為context.txt的文本文件和/etc/passwd文件來為例來進行說明。

$ cat content.txt Ubuntu LinuxMicrosoft WindowsOsX El CapitanUnixFreeBSD

如何指定分隔符

最常用的選項是-d和-f的組合,這會根據-d指定的分隔符和-f列出的字段來提取內容。

例如在這個例子中只打印出 /etc/passwd 文件每一行的第一個字段,用的分隔符是:

$ cut -d':' -f1 /etc/passwdrootbindaemonadmlpsyncshutdownhaltmailoperatorgamesalvinliangxu...

在下面這個例子中我們用空格作為分隔符打印 content.txt 文件的第一個字段

$ cut -d " " -f 1 content.txt UbuntuMicrosoftOsXUnixFreeBSD

在下面這個例子中我們提取了多個字段。這里,我們使用冒號(:)分隔符從文件 /etc/passwd 中包含字符串 /bin/bash 的行提取第一和第六個字段。

$ grep "/bin/bash" /etc/passwd | cut -d':' -f1,6root:/rootalvin:/home/alvin

要顯示字段的某個范圍,可以指定開始和結束的字段,中間用連字符(-)連接,如下所示:

$ grep "/bin/bash" /etc/passwd | cut -d':' -f1-4,6,7root0/root:/bin/bashalvin1000/home/alvin:/bin/bash

如何補全選擇的輸出

要補全選擇輸出的字段(即反選),使用--complement選項。這一選項輸出所有的字段,除了指定的字段。

在下面這個例子中輸出 /etc/passwd 文件中包含 /bin/bash 的行中除了第二個字段以外的所有字段:

$ grep "/bin/bash" /etc/passwd | cut -d':' --complement -f2root0/root:/bin/bash

如何指定輸出的分隔符

使用--output-delimiter可以指定輸出的分隔符。輸入的分隔符由-d來指定,而輸出分隔符和輸入分隔符默認是一樣的。

我們先以下面的例子來測試不指定輸出分隔符時的輸出;

$ cut -d: -f1,7 /etc/passwd | sort | uniq -u_apt:/usr/sbin/nologinbackup:/usr/sbin/nologinbin:/usr/sbin/nologindaemon:/usr/sbin/nologindnsmasq:/usr/sbin/nologingames:/usr/sbin/nologingnats:/usr/sbin/nologinirc:/usr/sbin/nologinlandscape:/usr/sbin/nologinlist:/usr/sbin/nologinlp:/usr/sbin/nologinlxd:/bin/false

現在我們加上--output-delimiter選項,將輸出分隔符指定為空格:

$ cut -d: -f1,7 --output-delimiter ' ' /etc/passwd | sort | uniq -u_apt /usr/sbin/nologinbackup /usr/sbin/nologinbin /usr/sbin/nologindaemon /usr/sbin/nologindnsmasq /usr/sbin/nologingames /usr/sbin/nologingnats /usr/sbin/nologinirc /usr/sbin/nologinlandscape /usr/sbin/nologinlist /usr/sbin/nologinlp /usr/sbin/nologinlxd /bin/false

我們再測試一個例子,用分隔符讓每一行打印一個字段。

我們將--output-delimiter指定為$' '表換行。

輸出結果為:

$ grep root /etc/passwd | cut -d':' -f1,6,7 --output-delimiter=$' 'root/root/bin/bashoperator/root/sbin/nologin

如何以字符的方式提取內容

-c選項可以用來根據字符位置進行提取,注意空格和Tab也以字符來處理。

打印 context.txt 文件每一行的第一個字符,如下:

$ cut -c 1 content.txtUMOUF

下面顯示了 context.txt 文件每一行的第一至七個字符;

$ cut -c 1-7 content.txtUbuntuMicrosoOsX ElUnixFreeBSD

我們再測試一下只指定開始或結束的位置。

下面提取第二個到最后一個字符:

$ cut -c2- content.txtbuntu Linuxicrosoft WindowssX El CapitannixreeBSD

提取第一到第四個字符:

cut -c-4 content.txtUbunMicrOsXUnixFree

如何根據字節提取

使用-b選項通過指定字節的位置來選擇一行的某一部分,使用逗號分隔每個指定位置,或用連字符-指定一個范圍。

下面這個例子提取 content.txt 文件每一行的第一,二,三個字節:

$ cut -b 1,2,3 content.txt UbuMicOsXUniFre

我們也可以用如下命令列出一個范圍;

$ cut -b 1-3,5-7 content.txt Ubutu MicosoOsXEl UniFreBSD

一些實用的例子

cut是一個實用的命令,常常和其他Linux或Unix命令結合使用 。

例如如果你想提取 ps 命令中的 USER,PID和COMMAND:

ps -L u n | tr -s " " | cut -d " " -f 2,3,14-USER PID COMMAND0 676 /sbin/agetty -o -p -- u --keep-baud 115200,38400,9600 ttyS0 vt2200 681 /sbin/agetty -o -p -- u --noclear tty1 linux0 23174 -bash0 26737 ps -L u n0 26738 tr -s0 26739 cut -d -f 2,3,14-

再測試一個例子,提取內存的 total,used和free值,并保存到一個文件中。

$ free -m | tr -s ' ' | sed '/^Mem/!d' | cut -d" " -f2-4 >> memory.txt$ cat memory.txt985 86 234

總結

cut命令可以和很多其他Linux或Unix命令通過管道連接。可以通過管道傳遞一個或多個過濾器進行額外的文本處理。

cut命令的局限性之一是它不支持指定多個字符作為分隔符。多個空格會被計算為多個字段分隔符,因此必須在cut命令前使用tr命令才能獲得需要的輸出。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11325

    瀏覽量

    209954
  • UNIX
    +關注

    關注

    0

    文章

    296

    瀏覽量

    41513
  • TAB
    TAB
    +關注

    關注

    0

    文章

    16

    瀏覽量

    11565

原文標題:Linux cut 命令詳解

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Linux實時查看日志的四種命令詳解

    如何在Linux中實時查看日志文件的內容?那么有很多實用程序可以幫助用戶在文件更改或不斷更新時輸出文件的內容。在Linux中實時顯示文件內容的常用命令是tail命令(有效地管理文件)。
    的頭像 發表于 01-13 10:45 ?133次閱讀
    <b class='flag-5'>Linux</b>實時查看日志的四種<b class='flag-5'>命令</b><b class='flag-5'>詳解</b>

    詳解Linux sort命令之掌握排序技巧與實用案例

    linux系統使用過程中,提供了sort排序命令,支持常用的排序功能。 常用參數 sort命令支持很多參數,常用參數如下: ? 短參數 長參數 說明 -n – number-sort 按字符串數值
    的頭像 發表于 01-09 10:10 ?148次閱讀

    嵌入式開發必備-RK3562演示Linux常用系統查詢命令

    本文介紹Linux系統查看硬件配置及常用調試命令,方便開發者快速了解開發板硬件信息及進行相關調試
    的頭像 發表于 01-06 14:13 ?94次閱讀
    嵌入式開發必備-RK3562演示<b class='flag-5'>Linux</b>常用系統查詢<b class='flag-5'>命令</b>

    Linux grep命令詳解

    Linux grep命令是一種非常常用的文本搜索工具,它可以在給定的文件中搜索匹配的字符串,并輸出匹配的行。grep是全稱“global search regular expression print”,可以識別正則表達式,并使用正則表達式進行搜索。
    的頭像 發表于 12-25 09:39 ?163次閱讀

    盤點Linux系統中的常見命令

    作為運維同學怎能不知道Linux系統中的lsmod、lsof、lspci、lsscsi命令呢,今天就來盤一盤她及實例。
    的頭像 發表于 12-03 09:48 ?323次閱讀
    盤點<b class='flag-5'>Linux</b>系統中的常見<b class='flag-5'>命令</b>

    Linux系統中shell命令解析

    shell是Linux系統的用戶界面,提供了用戶與內核交互的一種接口,它接收用戶輸入的命令并到送到內核去執行,因此也被稱為Linux命令解釋器。
    的頭像 發表于 11-05 15:40 ?331次閱讀

    詳解kubectl常用命令

    詳解kubectl常用命令
    的頭像 發表于 11-05 15:39 ?293次閱讀
    <b class='flag-5'>詳解</b>kubectl常用<b class='flag-5'>命令</b>

    Linux實用命令大全

    Linux實用命令大全
    的頭像 發表于 10-23 13:50 ?262次閱讀
    <b class='flag-5'>Linux</b>實用<b class='flag-5'>命令</b>大全

    Linux lsof命令的基本用法

    linux 系統中,一切皆文件。通過文件不僅僅可以訪問常規數據,還可以訪問網絡連接和硬件。所以 lsof 命令不僅可以查看進程打開的文件、目錄,還可以查看進程監聽的端口等 socket 相關的信息。本文將介紹 lsof 命令
    的頭像 發表于 10-23 11:52 ?351次閱讀
    <b class='flag-5'>Linux</b> lsof<b class='flag-5'>命令</b>的基本用法

    Linuxcut命令的實用示例

    Linux command cut 用于文本處理。您可以使用此命令通過選擇列從文件中提取部分文本。
    的頭像 發表于 08-05 15:14 ?341次閱讀

    util-linux修復WallEscape漏洞,影響Linux系統wall命令使用

    WallEscape 主要影響“wall”命令操作,Linux 系統中的常規下,該指令被用作向系統所有登錄用戶的終端發布消息。然而在處理命令行參數輸入時,過濾器未正確識別和過濾轉義序列
    的頭像 發表于 03-29 14:35 ?1007次閱讀

    Linux常用網絡命令介紹

    默認使用該命令會一直發送ICMP包直到用戶手動中止,可以使用-c命令指定發送數據包的個數,使用-W指定最長等待時間,如果有多張網卡,還可以通過-I指定發送包的網卡。
    發表于 03-25 14:45 ?487次閱讀
    <b class='flag-5'>Linux</b>常用網絡<b class='flag-5'>命令</b>介紹

    linux命令概述

    電子發燒友網站提供《linux命令概述.pdf》資料免費下載
    發表于 03-11 09:18 ?3次下載

    Linux上如何通過命令行來更改日期和時間?

    Linux上如何通過命令行來更改日期和時間? 在Linux上,我們可以使用命令行工具來更改日期和時間。操作系統中有一個專門的命令被稱為“d
    的頭像 發表于 01-16 17:10 ?2896次閱讀

    Linux查看IO狀態的常用命令都有哪些呢?

    介紹下Linux的3個常用I/O相關命令,解決I/O壓力過大問題時用iostat,查看磁盤的I/O狀態用iotop,查看I/O進程排名用lsof
    的頭像 發表于 01-16 09:28 ?5468次閱讀
    主站蜘蛛池模板: 天天碰免费视频| 天天插天天干天天射| 久色中文| 欧美性极品xxxxx| 欧美又粗又长又湿又黄的视频| 天天射天天操天天干| ts国产| 在线观看免费视频| 午夜网站在线| 久久香蕉精品视频| 人人爱操| 天天草夜夜骑| 精品福利在线视频| 美女一级牲交毛片视频| 天天插天天狠| 久久91精品牛牛| 日本xxwwxxww视频免费丝袜| 久久福利精品| 黄色网免费观看| 99久久综合国产精品免费| 人人做人人爽久久久精品| 32pao强力打造免费高速高清| 亚洲精品二区中文字幕| 91视频www| 永久免费的拍拍拍网站| 欧亚精品卡一卡二卡三| 欲色综合| 日本三黄色大| 欧美黄色tv| 欧美黄视频在线观看| 国产私拍视频| 天天干天天插天天射| 999久久精品国产| 性欧美高清极品xx| 国产男人搡女人免费视频| 久久99国产精品久久99| 四虎网站在线播放| 欧美在线小视频| 久久久久国产精品四虎| 亚洲第七页| 欧美色插|