shell之使用cut切割文字檔案

2022-07-07 01:48:12 字數 1453 閱讀 1510

我們知道可以通過工具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

Linux下使用cut切割有規則的列文字

data.txt no name mark percent 1 sarath 45 90 2 alex 49 98 3 anu 45 90 分隔符 定界符 為tab 製表符 如果我要取得第二列,所有人的名稱,有什麼好的辦法嗎?此時cut該大顯身手了。1 取得2,3列 即name,和mark cut ...

Shell基礎之 cut命令

cut命令用於從標準輸入檔案或文字檔案中按域或行提取文字 cut option file cut命令選項及其意義 c 指定提取的字元數或字元範圍 f 指定提取的域數或域範圍 d 改變域分隔符 cut c後跟數字表示字元數或字元範圍,共有三種表示方式 cn 表示第n個字元 cn m 表示n m個字元 ...

shell中cut的使用

cat etc passwd root x 0 0 root root bin bash bin x 1 1 bin bin sbin nologin daemon x 2 2 daemon sbin sbin nologin adm x 3 4 adm var adm sbin nologin c...