shell之使用cut切割文本文件


我們知道可以通過工具grep或egrep按行篩選記錄,這里我們可以通過cut工具對文本按列進行切分,它可以指定定界符,linux下制表符是默認的定界符。

#cut -f 2,3 textfile

這個命令可以顯示textfile文件的第2、3列。

例如:有文件如下:

# cat dept

10 ACCOUNTING NEW YORK

20 RESEARCH DALLAS

30 SALES CHICAGO

40 OPERATIONS BOSTON

1)# cut -f 2,3 dept

ACCOUNTING NEW YORK

RESEARCH DALLAS

SALES CHICAGO

OPERATIONS BOSTON

2)# cut -s -f 2,3 dept

ACCOUNTING NEW YORK

RESEARCH DALLAS

SALES CHICAGO

OPERATIONS BOSTON

其中-s選項可以過濾掉沒有按照指定定界符的行。

3)# cut -s -f1 --complement dept

ACCOUNTING NEW YORK

RESEARCH DALLAS

SALES CHICAGO

OPERATIONS BOSTON

使用-f1 --complement選項輸出結果不顯示第1行。

4)# cut -s -d":" -f1,2,3,4,5,6,7  dept

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

spark:x:481:480:Spark:/var/lib/spark:/sbin/nologin

hue:x:480:479:Hue:/usr/lib/hue:/bin/false

對於不是按照標准定界符分隔的文件,可以使用-d參數指定定界符。

通過指定字段、字符、字節范圍進行切割:

此種方法依賴於下表中的內容:

參數

說明

N-

N-M

-M

從第n個字符、字節、字段開始至行尾

從第n個字符、字節、字段至第m(包含)字符、字節、字段

從第1個字符、字節、字段開始至第m個字符、字節、字段

-b

-c

-f

表示字節

表示字符

表示字段

--output-delimiter

指定輸出定界符

例如:

# cat cuttext

qwertyuiopasdfghjkl

qwertyuiopasdfghjkl

Qwertyuiopasdfghjkl

1)# cut -c1-5,6-10 cuttext --output-delimiter ","

qwert,yuiop

qwert,yuiop

qwert,yuiop


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM