Linux 命令之 cut -- 分割字符串,显示或删除指定字段的内容,合并文件内容
文章目錄
- 一、命令介紹
- 二、常用選項
- 三、命令示例
- 根據指定的字節范圍顯示指定文件中的內容
- 指定字段分隔符,顯示指定字段的內容
- 顯示指定字段的內容
- 根據指定的字符范圍顯示指定文件中的內容
- 顯示指定字段以外的字段的內容
- 以指定的輸出分隔符來分割輸出內容中的字段
- 合并多個文件的內容
一、命令介紹
命令 cut 可以用來分割字符串,顯示指定范圍的內容,可以具體根據指定的字節范圍、字符范圍、分割字段范圍來顯示文本內容。還可以合并多個文件的內容。
| n- | 從第 n 個字節、字符、字段到結尾 |
| n-m | 從第 n 個字節、字符、字段到第 m 個字節、字符、段,包括 n 和 m 在內 |
| -m | 從第 1 個字節、字符、字段到第 m 個字節、字符、字段 |
二、常用選項
| -b | 以字節為單位,顯示行中指定字節范圍的字符 |
| -c | 以字符為單位,顯示行中指定字符范圍的字符 |
| -d | 指定字段的分隔符,默認的字段分隔符為制表符“TAB”。字段分隔符必須加引號,單引號或者雙引號都可以,分隔符與選項 -d 之間允許有空格 |
| -f | 顯示指定字段的內容 |
| -n | 與 -b 選項連用,不分割多字節字符 |
| --output-delimiter=<STRING> | 指定輸出的字段分隔符,分隔符和選項之間不允許有空格,分隔符可以不加引號,但是如果指定的分隔符是特殊符號必須加引號 |
| --help | 顯示指令的幫助信息 |
| --version | 顯示指令的版本信息 |
| --complement | 用來排除指定范圍的字符內容,實際的效果與單詞 complement 的含義不一致,只能認為老外的理解力逆天了! |
三、命令示例
根據指定的字節范圍顯示指定文件中的內容
文件 text.txt 的內容如下:
[root@htlwk0001host test]# cat text.txt hello shell world! dfdskklllllf dfsfdsf shell world sdffdsfdsfd dfsfdfdsfds fsdfdsfdsfdsf fdsfdsfdsfd顯示文件 text.txt 內容中每行的第 1 個到第 8 個字節的內容:
[root@htlwk0001host test]# cut -b1-8 text.txt hello sh dfdskkll dfsfdsf shell wo sdffdsfd dfsfdfds fsdfdsfd fdsfdsfd注:-b 表示以字節為單位,顯示行中指定字節范圍的字符
顯示文件 text.txt 內容中每行第 1 個字節和第 8 個字節的字符:
[root@htlwk0001host test]# cut -b1,8 text.txt hh dl d so sd ds fd fd指定字段分隔符,顯示指定字段的內容
其實就是自定義分隔符,將每行文本內容進行分割,然后選取分割后的某些字段的內容進行顯示。
[root@linuxcool ~]# cat student2.txt No;Name;Mark;Percent 01;tom;69;91 02;jack;71;87 03;alex;68;98指定分號 ; 作為分隔符,顯示第 2 個字段的內容:
[root@linuxcool ~]# cut -f2 -d";" student2.txt Name tom jack alex注:字段分隔符,可以不加引號,分隔符與選項 -d 之間允許有空格。
顯示指定字段的內容
默認字段分隔符是制表符 TAB,所以文本內容每個字段已經使用 TAB 分割,可以直接使用選項 -f 顯示指定字段的內容:
[root@linuxcool ~]# cat student.txt No Name Mark Percent 01 tom 69 91 02 jack 71 87 03 alex 68 98使用 -f 選項顯示第 2 個字段的內容:
[root@linuxcool ~]# cut -f 2 student.txt Name tom jack alex顯示第 2 個和第 3 個字段的內容:
[root@localhost text]# cut -f2,3 test.txt Name Mark tom 69 jack 71 alex 68根據指定的字符范圍顯示指定文件中的內容
文件 test.txt 的內容如下所示:
[root@linuxcool ~]# cat test.txt abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz顯示第 1 個字符到第 3 個字符的內容:
[root@linuxcool ~]# cut -c1-3 test.txt abc abc abc abc abc顯示每行前 2 個字符的內容:
[root@linuxcool ~]# cut -c-2 test.txt ab ab ab ab ab顯示從第 5 個字符開始到結尾的內容:
[root@linuxcool ~]# cut -c5- test.txt efghijklmnopqrstuvwxyz efghijklmnopqrstuvwxyz efghijklmnopqrstuvwxyz efghijklmnopqrstuvwxyz efghijklmnopqrstuvwxyz顯示指定字段以外的字段的內容
可以使用選項 --complement 提取指定字段之外的列,即打印除了第二列之外的列的內容:
[root@linuxcool ~]# cut -f2 --complement student.txt No Mark Percent 01 69 91 02 71 87 03 68 98以指定的輸出分隔符來分割輸出內容中的字段
可以使用選項 --output-delimiter 來指定輸出內容時的字段分隔符,例如,指定符合 # 作為輸出的字段分隔符,如下所示:
[root@htlwk0001host test]# cut -d';' -f2,4 --output-delimiter='#' text2.txt Name#Percent tom#91 jack#87 alex#98說明:
-d';' 表示在輸入的數據流中,以分號 ; 作為字段分隔符對每行的文本內容進行分割,而 --output-delimiter='#' 表示在輸出內容的時候,以 #作為字段的分隔符顯示內容。
合并多個文件的內容
把文件 f1 和 f2 的內容合并起來,然后通過覆蓋輸出重定向符 > 將合并后的內容放入文件 f3 中,命令如下:
[root@htlwk0001host test]# cut f1 f2 > f3總結
以上是生活随笔為你收集整理的Linux 命令之 cut -- 分割字符串,显示或删除指定字段的内容,合并文件内容的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何查询房子是否备案成功(如何查询房子是
- 下一篇: Linux 组合命令/命令组合的符号