(九)字符處理命令

1:cut [選項] 文件名正則表達式

選項:vim

-f 列號:       提取第幾列排序

-d 分隔符:     按照指定分隔符分割列字符串

-c 字符範圍:   不依賴分隔符來區分列,而是經過字符範圍(行首爲 0)來進行字段提取。「n-」表示從第 n 個字符到行尾;「n-m」從第 n 個字符到第 m個字符;「-m」表示從第 1 個字符到第 m 個字符。cut 命令的默認分隔符是製表符,也就是「tab」鍵。awk

 

3:sed擴展

sed 主要是用來將數據進行選取、替換、刪除、新增的命令.sed

直接用命令對文件進行修改並非vi進行編輯。im

    -n:  通常 sed 命令會把全部數據都輸出到屏幕,若是加入此選擇,則只會把通過 sed 命令處理的行輸出到屏幕。統計

-e:  容許對輸入數據應用多條 sed 命令編輯。數據

-f 腳本文件名: 從 sed 腳本中讀入 sed 操做。和 awk 命令的-f 很是相似。

-r:  在 sed 中支持擴展正則表達式。

-i:  用 sed 的修改結果直接修改讀取數據的文件,而不是由屏幕輸出動做:

a \:  追加,在當前行後添加一行或多行。添加多行時,除最後 一行外,每行末尾須要用「\」表明數據未完結。

c \:  行替換,用 c 後面的字符串替換原數據行,替換多行時,除最後一行外,每行末尾需用「\」表明數據未完結。

i \:  插入,在當期行前插入一行或多行。插入多行時,除最後 一行外,每行末尾須要用「\」表明數據未完結。

d: 刪除,刪除指定的

p: 打印,輸出指定的行。

s: 字串替換,用一個字符串替換另一個字符串。格式爲「行範圍 s/舊字串/新字串/g」(和 vim 中的替換格式相似)

sed 所作的修改並不會直接改變文件的內容(若是是用管道符接收的命令的輸出,這種狀況連文件都沒有),而是把修改結果只顯示到屏幕上,除非使用「-i」選項纔會直接修改文件。

 

例子:

(1) 行操做

sed '2p' student.txt  屏幕顯示2行數據

(2)只顯示-n 只顯示第二行

sed -n '2p' student.txt

(3)刪除2,4行數據

sed '2,4d' student.txt

(4)在第二行後面添加指定的字符串

sed '2a  ddddddd' student.txt

(1) 在第二行前面添加制定的字符串

sed "2i heeeeeee"  student.txt

(2) 行首替換爲#

sed '4s/^/#/g' student.txt

 

3:字符處理命令

(1) 排序 sort命令

-f:  忽略大小寫

-b:  忽略每行前面的空白部分

-n:  以數值型進行排序,默認使用字符串型排序  //數值排序

-r:  反向排序

-u:  刪除重複行。就是 uniq 命令

-t:  指定分隔符,默認是分隔符是製表符

-k n[,m]: 按照指定的字段範圍排序。從第 n 字段開始,m 字段結束(默認到行尾)

sort -n  -r student.txt  //按照字符數值降序排列

sort -n -t ":" -k 3,3 /etc/passwd

固然「-k」選項能夠直接使用「-k 3」,表明從第三字段到行尾都排序(第一個字符先排序,若是一致,第二個字符再排序,知道行尾)。

(2) uniq去除重複行

 

(3) 統計命令 wc

   wc –l 統計行數

相關文章
相關標籤/搜索