Linux使用cut進行文本提取的操作方法
簡介
Linux
中的 cut
命令是一個命令行實用程序,用于從文件或標準輸入中提取文本行的部分。當希望從文件或數(shù)據(jù)流中提取特定字段或列時,例如處理以逗號分隔或制表符分隔的文件時,它非常有用。
基礎語法
cut
命令通過指定分隔符(例如空格、制表符或特定字符)并選擇想要顯示的列或字段來工作
cut OPTION... [FILE]...
常用選項
-b, --bytes=LIST
:通過指定一個字節(jié)、一組字節(jié)或一個字節(jié)范圍進行選擇-c, --characters=LIST
:通過指定一個字符、一組字符或一個字符范圍進行選擇-d, --delimiter=DELIM
:指定將用來代替默認“TAB”分隔符的分隔符-f, --fields=LIST
:僅選擇這些字段;還打印任何不包含分隔符的行,除非指定了 -s 選項--complement
:補充選擇。使用此選項時,cut 將顯示除所選內(nèi)容之外的所有字節(jié)、字符或字段-s, --only-delimited
:不打印不包含分隔符的行--output-delimiter=STRING
:cut 的默認行為是使用輸入分隔符作為輸出分隔符。此選項允許指定不同的輸出分隔符字符串
范圍選擇
N
:第 N 個字節(jié)、字符或字段,從 1 開始計數(shù)N-
:從第 N 個字節(jié)、字符或字段到行尾N-M
:從第 N 到第 M (含) 個字節(jié)、字符或字段-M
:從第一個到第 M 個(含)字節(jié)、字符或字段
示例用法
-f:字段選擇
此選項用于指定要提取哪些字段。字段由分隔符分隔(通常是制表符或空格,但可以使用 -d
選項指定任何分隔符)。
示例:要從文件中提取第一列和第三列
cut -f 1,3 filename
-d:分隔符
此選項指定分隔字段的分隔符。默認情況下,cut
假定字段由制表符分隔,但可以指定其他分隔符,如逗號、冒號或空格
示例:要從逗號分隔文件 (CSV) 中提取字段
csv文件
Name,Age,Location Alice,30,New York Bob,25,Los Angeles Charlie,35,Boston
cut -d ',' -f 1,3 filename
示例輸出
Name,Location Alice,New York Bob,Los Angeles Charlie,Boston
-c:字符選擇
這個選項允許從每行中提取特定字符??梢灾付ㄒ崛〉淖址恢茫ɑ蜃址秶?/p>
示例:提取每行位置 1 至 5 的字符
cut -c 1-5 filename
-b:字節(jié)選擇
此選項允許根據(jù)字節(jié)而不是字符來截斷輸入。當處理面向字節(jié)的數(shù)據(jù)(例如二進制文件)時,此功能非常有用。
cut -b 1-5 filename
--complement:反向選擇
該選項允許補充選擇,這意味著它不是選擇指定的字段,而是將其排除
示例:排除第一列(字段)并顯示其余部分
cut -f 1 --complement filename
-s:禁止使用無分隔符的行
此選項會隱藏不包含分隔符的行。如果想要排除缺少分隔符的行,此選項非常有用
示例:從文件中提取字段并忽略沒有分隔符的行
cut -d ',' -f 1 -s filename
提取特定字符
有一個字符串并想提取前 3 個字符
echo "abcdefg" | cut -c 1-3
輸出
abc
提取多個字符范圍
要提取多個范圍的字符(例如,字符 1-3 和 6-8)
echo "abcdefg" | cut -c 1-3,6-8
輸出
abcfg
使用 cut 和 ps 列出進程
可以使用 cut 從 ps 命令輸出中提取特定信息
例如:提取進程ID和正在運行的進程的命令
ps aux | cut -d ' ' -f 1,11
使用--complement排除字段
要從 passwd
文件中排除第一個字段(用戶名)
cut -d ':' -f 1 --complement /etc/passwd
從 ls 的輸出中提取特定列
此命令列出了文件和目錄,但只輸出它們的名稱(ls -l 輸出中的第 9 列)
ls -l | cut -d ' ' -f 9
獲取當前目錄中文件的磁盤使用情況
這將僅輸出每個文件或目錄的大小,不包括路徑信息
du -h | cut -f 1
到此這篇關于Linux使用cut進行文本提取的操作方法的文章就介紹到這了,更多相關Linux cut文本提取內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
解決Vmware虛擬機安裝centos8報錯“Section?%Packages?Does?Not?End?W
這篇文章介紹了解決Vmware虛擬機安裝centos8報錯“Section?%Packages?Does?Not?End?With?%End.?Pane?Is?Dead”的方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-05-05Linux 下dmidecode查看內(nèi)存條數(shù)的命令介紹
下面小編就為大家?guī)硪黄狶inux 下dmidecode查看內(nèi)存條數(shù)的命令介紹。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11Linux安裝Jenkins步驟及各種問題解決(頁面訪問初始化密碼)
這篇文章主要介紹了Linux安裝Jenkins步驟及各種問題頁面訪問初始化密碼,需要的朋友可以參考下2019-12-12Linux啟動/停止/重啟Mysql數(shù)據(jù)庫的簡單方法(推薦)
下面小編就為大家?guī)硪黄狶inux啟動/停止/重啟Mysql數(shù)據(jù)庫的簡單方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10