文本處理工具

1.cat
主要三大功能:
1.一次顯示整個文件:cat filename
2.從鍵盤創建一個文件:cat > filename << EOF ….>EOF (只能創建新文件,不能編輯已有文件);cat向已經存在的文件追加內容:cat >> file <<EOF…>EOF
3.將幾個文件合并為一個文件:cat file1 file2 > file;cat 把一個或多個已經存在的文件內容,追加到一個已存在的文件中: cat file1 file2 file3 >> file4
ps:>是創建,>>是追加
命令參數:
cat [option] filename
cat -v: 顯示非打印字符
-E :顯示行結束符$
-T :顯示TAB
-n :對顯示出的每一行進行編號,顯示行號
-s :將連續的重復空行變成一行
-A = -vET:  顯示所有控制符

-b :非空行編號

2.more
功能:more命令和cat的功能一樣都是查看文件里的內容,但有所不同的是more可以分頁來查看文件的內容,還支持直接跳轉行等功能。
命令參數:
more [optiions…] file
+n :從笫n行開始顯示
-n :定義屏幕大小為n行,即每屏顯示n行。(屏幕最下面顯示了該屏展示的內容占文件總行數的比例,按 Ctrl+F 或者 空格鍵 將會顯示下一屏5條內容,百分比也會跟著變化。)
+/pattern 在每個檔案顯示前搜尋該字串(pattern),然后從該字串前兩行之后開始顯示
-c :從頂部清屏,然后顯示
-d :提示“Press space to continue,’q’ to quit(按空格鍵繼續,按q鍵退出)”,禁用響鈴功能
-l :忽略Ctrl+l(換頁)字符
-p :通過清除窗口而不是滾屏來對文件進行換頁,與-c選項相似
-s :把連續的多個空行顯示為一行
-u :把文件內容中的下畫線去掉
 
3.less
功能:less 與 more 類似,但使用 less 可以隨意瀏覽文件,而 more 僅能向前移動,卻不能向后移動,而且 less 在查看之前不會加載整個文件。(一頁一頁的查看文件或STDIN(標準輸入)輸出)

命令參數:
-b <緩沖區大小>: 設置緩沖區的大小
-e :當文件顯示結束后,自動離開
-f :強迫打開特殊文件,例如外圍設備代號、目錄和二進制文件
-g :只標志最后搜索的關鍵詞
-i :忽略搜索時的大小寫
-m :顯示類似more命令的百分比
-N :顯示每行的行號
-o <文件名> :將less 輸出的內容在指定文件中保存起來
-s :顯示連續空行為一行
-S :行過長時間將超出部分舍棄
-x <數字> :將“tab”鍵顯示為規定的數字空格
4.head
功能:head 用來顯示檔案的開頭至標準輸出中,默認head命令打印其相應文件的開頭10行。
命令參數:
head -n 數字 filename      顯示前 n行
-n 行號                         顯示前n行
– 行號                           顯示前n行
-c 字節數                      顯示前n個字節
-v                               顯示文件名
-q                               隱藏文件名
顯示文件的除了最后n個字節以外的內容 ,命令:head -c -數字 filename
輸出文件除了最后n行的全部內容,命令:head -n -數字 filename
5.tail
功能:用于顯示指定文件末尾內容,不指定文件時,作為輸入信息進行處理。常用查看日志文件。
命令參數:
tail -c <數目> :顯示后_字節數
-n <行數> :顯示后_行數
— <行號> :顯示后_行
-f :循環讀取,動態顯示
-q :不顯示處理信息
-v :顯示詳細的處理信息
–pid=PID 與-f合用,表示在進程ID,PID死掉之后結束.
-q, –quiet, –silent 從不輸出給出文件名的首部
-s, –sleep-interval=S 與-f合用,表示在每次反復的間隔休眠S秒
6.cut
功能:cut是一個選取命令,就是將一段數據經過分析,取出我們想要的。一般來說,選取信息通常是針對“行”來進行分析的,并不是整篇信息分析的。
命令主要參數:
cut [option] [file]
-b :以字節為單位進行分割。這些字節位置將忽略多字節字符邊界,除非也指 定了 -n 標志。
-c :以字符為單位進行分割。
-d :自定義分隔符,默認為制表符,(只能在-d后面設置一個空格,不許設置多個空格,因為cut只允許間隔符是一個字符)。
-f :與-d一起使用,指定顯示哪個區。

-n : 取消分割多字節字符。僅和 -b 標志一起使用。如果字符的最后一個字節 落在由 -b 標志的 List 參數指示的<br />范圍之內,該字符將被寫出;否則,該 字符將被排除。

例子:

1.

文本處理工具

(-3表示從第一個字節到第三個字節,而3-表示從第三個字節到行尾。兩種情況下,都包括了第三個字節“c”。執行who|cut -b -3,3-,是輸出整行,不會出現連續兩個重疊的c的。)

2.

因為-b和-c只能在固定格式的文檔中提取信息,而對于非固定格式的信息則用域。

cut命令提供了這樣的提取方式,具體的說就是設置“間隔符”,再設置“提取第幾個域”。
文本處理工具
(用-d來設置間隔符為冒號,然后用-f來設置要取的是第一個域,再按回車,所有的用戶名就都列出來了。在設定-f時,也可以使用例如3-5或者4-類似的格式)

3.

設定一個空格為間隔符 :cut -d ‘ ‘ -f1
兩個單引號之間可確實要有一個空格,只能在-d后面設置一個空格,不許設置多個空格,因為cut只允許間隔符是一個字符。
7.paste
功能:paste 指令會把每個文件以列對列的方式,一列列地加以合并。
命令參數:
-d<間隔字符>或–delimiters=<間隔字符> : 用指定的間隔字符取代跳格字符。
-s或–serial ?。?將每個文件合并成行而不是按行粘貼
–help ?。涸诰€幫助。
–version:顯示幫助信息。
[file…] :指定操作的文件路徑
– :使用標準輸入
語法:
paste f1 f2 [f3] 合并制定文件的內容
paste -s f1 將文件內容變成一行顯示 也可以用 tr ‘\n’ ‘\t’ 實現
paste -d “” f1 f2 [f3] 合并后的分隔符,默認TAB

8.wc

功能:wc即Word count,為統計指定文件中的字節數、字數、行數,并將統計結果顯示輸出。(統計指定文件中的字節數、字數、行數,并將統計結果顯示輸出。該命令統計指定文件中的字節數、字數、行數。如果沒有給出文件名,則從標準輸入讀取。wc同時也給出所指定文件的總統計數。)
命令參數:
語法:wc 命令
-c :統計字節數。
-l :統計行數。
-m :統計字符數。這個標志不能與 -c 標志一起使用。
-w :統計單詞數。一個字被定義為由空白、跳格或換行字符分隔的字符串。
-L :打印最長行的長度。
-help :顯示幫助信息
–version :顯示版本信息
wc  行數   單詞數   字節

9.sort

功能:依據不同的數據類型進行排序
命令參數:

-r :執行反方向(由上至下)整理? (sort默認的排序方式是升序)

-n :執行按數字大小整理
-f :選項忽略(fold)字符串中的字符大小寫
-u :選項(獨特,unique)刪除輸出中的重復行
-t c :選項使用c做為字段界定符(-t :分隔符,默認是用 [tab] 鍵來分隔)
-k X :選項按照使用c字符分隔的X列來整理能夠使用多次
-M :以月份的名字來排序,例如 JAN, DEC 等等的排序方法;
例子:

找出分區利用率最大的值

文本處理工具

10.uniq
功能:從輸入中刪除前后相接的重復的行
命令參數:
uniq [option] [file]
-c: 顯示每行重復出現的次數
-d:僅顯示重復過的行
-u:僅顯示不曾重復的行(連續且完全相同方為重復)
-i : 忽略大小寫字符的不同
常和sort命令一起配合使用(為了使uniq起作用,所有的重復行必須是相鄰的
sort userlist.txt | uniq -c

11.diff  patch
功能:diff命令能比較單個文件或者目錄內容。如果指定比較的是文件,則只有當輸入為文本文件時才有效。以逐行的方式,比較文本文件的異同處。如果指定比較的是目錄的的時候,diff 命令會比較兩個目錄下名字相同的文本文件。列出不同的二進制文件、公共子目錄和只在一個目錄出現的文件。
命令參數:
diff file1 file2 比較file1和file2的區別
diff -u f1 f2 > diff.log 生成補丁
diff f2 f2.rm 比較還原回來的新文件與被刪除的文件,發現沒有區別。

patch -b f1 diff.log    通過補丁還原文件 ,生成的f1為原來的f2,fi.orig為原f1

mv f2 f2.rm 相當于刪除了文件。
mv f1 f2 還原原始的新文件名
mv f1.orig f1 還原原始的舊文件名

12.grep
Linux系統中grep命令是一種強大的文本搜索工具,它能使用正則表達式搜索文本,并把匹 配的行打印出來。grep全稱是Global Regular Expression Print,表示全局正則表達式版本,它的使用權限是所有用戶。
命令參數:
grep [options] pattern [file]
–color=auto 將匹配的結果著色顯示
-v 反向匹配、
-i 忽略大小寫
-n 顯示的結果前增加行號
-c 僅顯示匹配到結果的行數
-o 僅顯示匹配到的字符串
-q 靜默模式,不輸出任何信息 或者 &> /dev/null
-A# 顯示關鍵字行及向后#行
-B# 顯示關鍵字行及向前#行
nmap -v -sP 172.17.252.0/24 |grep -B1 “Host is up”|grep for |cut -d” ” -f5 |wc -l
-C# 顯示關鍵字向前#行,當前行,及向后#行
-e 關鍵字1 -e 關鍵字2 實現多個選項間的邏輯or關系
-w 匹配整個單詞
-E 使用擴展正則表達式 或egrep
-F 不使用正則表達式 或 fgrep
13.pattern正則表達式主要參數:
\: 忽略正則表達式中特殊字符的原有含義。
^: 匹配正則表達式的開始行。
$: 匹配正則表達式的結束行。
\<: 從匹配正則表達 式的行開始。
\>: 到匹配正則表達式的行結束。
[ ]: 單個字符,如[A]即A符合要求 。
[ – ]: 范圍,如[A-Z],即A、B、C一直到Z都符合要求 。
。: 所有的單個字符。
* : 有字符,長度可以為0。

14、正則表達式

(1)

. 匹配任意單個字符
[] 匹配指定范圍內的任意單個字符
[^] 匹配指定范圍外的任意單個字符
[:alnum:] 或 [0-9a-zA-Z]
[:alpha:] 或 [a-zA-Z]
[:upper:] 或 [A-Z]
[:lower:] 或 [a-z]
[:blank:] 空白字符(空格和制表符)
[:space:] 水平和垂直的空白字符(比[:blank:]包含的范圍廣)
[:cntrl:] 不可打印的控制字符(退格、刪除、警鈴…)
[:digit:] 十進制數字 或[0-9]
[:xdigit:]十六進制數字
[:graph:] 可打印的非空白字符
[:print:] 可打印字符
[:punct:] 標點符號

(2)

*  匹配前面的字符任意次,包括0次

            貪婪模式:盡可能長的匹配

        .*  任意長度的任意字符

        \?  匹配其前面的字符0 或1次

        \+  匹配其前面的字符至少1次

        \{n\}  匹配前面的字符n次

        \{m,n\}  匹配前面的字符至少m 次,至多n次

        \{,n\}  匹配前面的字符至多n次

        \{n,\}  匹配前面的字符至少n次

15.egrep擴展的正則表達式
擴展的正則表達式
egrep = grep -E
egrep [options] pattern [file]
擴展正則表達式的元字符:
字符匹配:
. 任意單個字符
[ ] 指定范圍的字符
[^] 不在指定范圍的字符
次數匹配:
* : 匹配前面字符任一次
?:0或1次
+ : 1次或多次
{m} : 匹配m次
{m,n} : 至少m,至多n次
位置錨定:
^ : 行首
$ :行尾
\ <, \b :語首
\> ,\b :語尾
分組:
()
后向引用 :\1 ,\2
或者:
a|b :a或 b
C | cat :C或
cat
(C|c)at :Cat 或cat

原創文章,作者:Light Yagami,如若轉載,請注明出處:http://www.www58058.com/83164

(0)
Light YagamiLight Yagami
上一篇 2017-07-29
下一篇 2017-07-29

相關推薦

  • test

    test the URL.

    Linux干貨 2016-12-03
  • Linux系統網絡屬性管理

        每臺計算機主機連入internet都必須給主機設定以個合法的IP地址。這些IP參數大概包括IP地址、子網掩碼、網關、路由、DNS等。在Linux中,大多數命令配置網絡配置都是臨時生效,想要網絡服務永久有效就必須寫入配置文件中,所以有時候更改配置重啟主機是為了讓內核重讀配置文件到內核中,因為配置文件屬于用戶空間的文件。大多數網絡配置…

    Linux干貨 2016-09-18
  • 網絡管理及任務進程解析

     網絡管理————————————— 一.IP 地址 與路由  1.首先說的是IP地址:       它們可唯一標識IP 網絡中的設備,每臺主機必須具有唯…

    2017-07-02
  • useradd的學習小結

    1、作用 創建一個新的用戶賬號或者更新創建用戶時的默認設置。 2、語法 有兩種語法格式,第一種是創建新用戶時,為新用戶設置屬性,而不完全使用/etc/default/useradd默認設置的內容;第二種是設置/etc/default/useradd的內容,即設置創建新用戶時,新用戶具有的默認屬性。 (1)useradd [選項 屬性] 用戶名 如果不加選項,…

    2017-07-22
  • Linux 文本查看及處理工具&&用戶和組管理

    1、列出當前系統上所有已登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 ~]# who | cut -d ' ' -f 1 | sort -u 2、取出最后登入到當前系統的相關信息。 ~]# last&…

    Linux干貨 2016-10-05
  • Linux系統上的人機交互

    眾所周知,計算機上運行的數據流最后都會以二進制的方式流轉,這對計算機來說確實沒什么問題,但是對人類來說,這樣的方式無疑太難理解,所以計算機通過轉換,將二進制的0、1字符串轉換成人們可以易于理解的字母和數字,來方便計算機與人類的溝通和交互。這樣一來,人類可以讀取和輸入人類習慣的字母和數字;而計算機可以使用自己的0、1字符串接收任務和返回結果。然而,這一過程就少…

    Linux干貨 2017-09-01
欧美性久久久久