shell cut命令具體應用

2021-04-28 07:43:37 字數 2241 閱讀 3695

cut命令

cut命令用於從檔案或者標準輸入中讀取內容並擷取每一行的特定部分並送到標準輸出。

擷取的方式有三種:

一是按照字元位置,二是按照位元組位置,

三是使用乙個分隔符將一行分割成多個field,並提取指定的fields。

cut命令有5個引數,其中-c,-b,-f分別表示"character", "byte"以及"field"擷取方式。

當採用field模式擷取時,需要用"-d"引數指定乙個分隔符,分割符只能為單個字元。另外還有乙個"-s",suppress,表示如果行中沒有給出的分割符則不輸出該行(預設為如果沒有分隔符則將該行原封不動輸出)

以下為幾個例子:

按字元擷取:echo hello, world | cut -c 8-12 則輸出"world"(擷取字串中從第8到第12個共12個字元)

按分隔符擷取:echo hello, world | cut -f 2 -d " "則輸出"world"(擷取以空格分割的第二部分)

echo long, long ago | cut -f 2,3 -d " "則輸出" long, ago"(擷取以空格分割的第2、3部分,注意輸出的結果也以-d指定的分隔符分割)

使用"-s"安靜地忽略沒有給出地分隔符地行:echo hello |cut -d "!" -f 1 -s則什麼也不輸出(因為行中沒有"!"字元)

如果命令執行成功則返回0,遇到錯誤則返回乙個大於0的數字。

其中-c,-b,好理解,下面我自己理解的-f引數,自己多試驗幾次,多輸出幾次,就明白了。

# echo long,long ago,ddddddd | cut -f 2 -d ,

long ago

# echo long,long ago,ddddddd | cut -f 2- -d ,

long ago,ddddddd

# echo long,long ago,ddddddd,hhhhhhhhhhh | cut -f 2- -d ,

long ago,ddddddd,hhhhhhhhhhh

上面三個對比一下就會很清楚。

# echo long,long ago,ddddddd | cut -f 2,3 -d ,

long ago,ddddddd

# echo long,long ago,ddddddd | cut -f 1,3 -d ,

long,ddddddd

# echo long,long ago,ddddddd | cut -f 1,2 -d ,

long,long ago

# echo long,long ago ddddddd | cut -f 2 -d ,

long ago ddddddd

# echo long,long ago ddddddd | cut -f 2,3 -d ,

long ago ddddddd

shell cut命令(2)

1.獲取dns欄位:

cat /etc/resolv.conf |grep "nameserver" -m 1 | cut -f 2 -d ' '

2.udhcp.script寫resolv.conf檔案:

# remove this link if writing directly to resolv.conf

rm -f /etc/resolv.conf

cat domain $domain

nameserver $dns

eof3.我們經常會遇到需要取出分字段的檔案的某些特定字段,例如 /etc/password就是通過":"分隔各個欄位的。可以通過cut命令來實現。例如,我們希望將系統賬號名儲存到特定的檔案,就可以:

cut -d: -f 1 /etc/passwd > /tmp/users

-d用來定義分隔符,預設為tab鍵,-f表示需要取得哪個字段

當然也可以通過cut取得檔案中每行中特定的幾個字元,例如:

cut -c3-5 /etc/passwd

就是輸出/etc/passwd檔案中每行的第三到第五個字元。

-c 和 -f 引數可以跟以下子引數:

n 第n個字元或字段

n- 從第乙個字元或字段到檔案結束

n-m 從第n個到第m個字元或字段

-m 從第乙個到第n個字元或字段

文章出處:diy部落(http://www.diybl.com/course/3_program/shell/shelljs/20090319/163417.html)

shell cut命令及常見用法

背景 cut是乙個將文字按列進行劃分的文字處理工具。cut命令逐行讀入文字,然後按列劃分欄位並進行提取 輸出等操作。命令格式 cut option filename cat filename cut option 可以看到,cut命令既可以用檔案作為引數也可以接受標準輸入。常見用法 本次實驗所用的檔...

xpath 具體應用

coding utf 8 import sys import requests from lxml import etree import codecs reload sys sys.setdefaultencoding utf 8 3.html 存本地使加快請求速度 open 後為路徑 建議用相對...

python 具體場景應用

format 1.23455,2f 保留兩位小數 data 1,2,35,2,1 list set data with open input path,r encoding utf 8 as f json data json.load f 讀取json檔案,並轉化為字典格式 json dict js...