cut大資料中常用指令碼詳解

2021-12-30 11:35:16 字數 2309 閱讀 2069

按照國際慣例先來理論的介紹。

cut是在linux裡非常常用的乙個命令,cut命令是乙個選取命令,其功能是將檔案中的每一行」位元組」 」字元」 」字段」 進行剪下,選取我們需要的,並將這些選取好的資料輸出至標準輸出。執行過程:選取命令通常是針對一行一行的資料來進行分析的, 並不是整篇資訊分析。

使用時的一般格式:

cut -[n]b file

cut -c file

cut -d[分隔符] -f[域] file素材:

[root@localhost shell]# cat test1.txt

557adfhg

bcd5464b

135465453456

233546576[root@localhost shell]# cat test2.txt

星期一星期二

星期三星期四

星期五星期六

星期日以位元組為單位進行分割。這些位元組位置將忽略多位元組字元邊界,除非也指定了 -n 標誌。切txt中的每一行的第乙個位元組:

[root@localhost shell]# cut -b 1 test1.txt 5b

12剪下多個字元有很多方式,

如 -b 1,3,5 //剪下每一行第 1 3 5個字元 (示例1)

如 -b 1-5 //剪下每一行第 1-5 個字元 (示例2)

如 -b -5 //剪下每一行第 1-5 個字元 (示例3)

如 -b 3- //剪下每一行第 3個字元以後的 (示例4)

[root@localhost shell]# cut -b 1,3,5 test1.txt

57dbd4

156234

[root@localhost shell]# cut -b 1-5 test1.txt

557ad

bcd54

13546

23354

[root@localhost shell]# cut -b -5 test1.txt

557ad

bcd54

13546

23354

[root@localhost shell]# cut -b 3- test1.txt

7adfhg

d5464b

5465453456

3546576首先按照上面的例子對test2.txt進行操作出現了亂碼的現象,因為-b 只是針對位元組進行裁剪,對乙個漢字進行位元組裁剪,得到的結果必然是亂碼,若想使用 -b 命令對位元組進行裁剪,那麼則需要使用 -n 選項,此選項的作用是取消分割多位元組字元。

[root@localhost shell]# cut -nb 3 test2.txt 星星

星星星星

[root@localhost shell]# cut -nb 3,6 test2.txt 星星期

星期星期

星期星期

星期[root@localhost shell]# cut -nb 3,6,9 test2.txt

星期星期二

星期三星期四

星期五星期六

星期日[root@localhost shell]# cut -nb 3,6,9,12 test2.txt

星期一星期二

星期三星期四

星期五星期六

星期日-c的作用就是剪下字元,和上面的 -nb 有些類似:

[root@localhost shell]# cut -c 1 test2.txt 星星

星星星星

[root@localhost shell]# cut -c 2 test2.txt 星期

期期期期

期[root@localhost shell]# cut -c 1-3 test2.txt

星期星期二

星期三星期四

星期五星期六

星期日上面的-b -c 只是針對於格式固定的資料中剪下,但是對於一些格式不固定的,就沒有辦法獲取到我們想要的資料,因此便有了 -f 域的概念。字元給剪下出來,那麼我們就可以使用 -d 命令,指定其分割符為 : 然後再選取第乙個域內的內容即可,如下:

[root@localhost shell]# cat /etc/passwd | head -n 3

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

[root@localhost shell]# cat /etc/passwd | head -n 3 | cut -d : -f 1

root

bindaemon

shell中常用的命令 cut命令

cut命令通常用來擷取 引數 說明 c 指定擷取字元的位置 d指定分隔符 f指定要擷取的列 cp etc passwd cut d f 1 passwd 以 為分隔符 擷取passwd檔案第一列的內容 cut d f 1,3 passwd 以 為分隔符 擷取passwd檔案第一列和第三列的內容 cu...

shell 指令碼中常用的命令

1.顯示當前的ip ifconfig eth0 grep bcast awk f cut d f 1 2.查詢檔案裡是否含有某些字段 grep test test.txt 3.前乙個命令正確列印出來的是0 echo 4.判斷某個目錄是否存在,不存在則建立 if d test then mkdir t...

shell指令碼中常用的命令

一,shell指令碼中常用命令 1,diff命令 diff命令是以逐行的方式,比較文字檔案的異同處。如果該命令指定進行目錄的比較,則將會比較該目錄中具有相同檔名的檔案,而不會對其子目錄檔案進行任何比較操作。使用規則 diff options target1 target2 diff file1 fi...