文本處理工具

文本處理工具

  • 文本內容 : cat,more,less
  • 文件截取: head,tail
  • 按列抽取: cut
  • 排序和統計: sort,wc
  • 按關鍵字抽取: grep

cat 命令

Usage: cat [OPTION]... [FILE]...正則表達式

-A: 顯示全部控制符  -vETcentos

-E: 顯示行結束符bash

-n:對顯示出的每一行進行編號less

-b:非空行編號   = nl 命令dom

-s:壓縮連續的空行成一行工具

 

$ cat <<-EOF >a.txt     //多行重定向centos7

    你想輸入的文字spa

    你想輸入的文字.......net

    EOF日誌

 

nl 命令

tac 命令

對每一行的內容進行倒序輸出

rev 命令

對一行的內容進行逆向輸出

more 命令

Usage: more [options] file...

-d:顯示翻頁及退出提示

less 命令

head 命令

Usage: head [OPTION]... [FILE]...

-c #    指定獲取前#字節

-n #    指定獲取前#行  (#爲負數,就是文件的倒數第#行,從第一行開始一直到倒數第#行,排除倒數第#行)

-# 指定行數

tail 命令

Usage: tail [OPTION]... [FILE]...

-c #    指定獲取後#字節

-n #    指定獲取後#行(-n +3 表示從第3行開始一直到最後一行)

-# 同上

-f    跟蹤文件描述符fd,用做日誌監控

-F    跟蹤文件名

tailf 相似於tail -f ,當文件不增加時並不訪問文件

cut 命令

Usage: cut OPTION... [FILE]...

-d    指明分隔符

-f    fileds

    #    第#個字段

    #,#[,#]:   離散的多個字段

    #-#:連續的多個字段

    -c    按字符切割

    --output-delimiter=STRING 指定輸出分隔符

    --complement  表示取 -c|-f後的字段相反的列

root]# ifconfig ens33|head -2|tail -1|tr -s ' '|cut -d' ' -f3  //取 ip

root]# tr -dc '[:alnum:]' < /dev/urandom |head -c12    // 從 urandom文件中取 「字母數字」12個

root]# df|tr -s " "|cut -d" " -f5|tr -dc '[0-9\n]'  //取出使用率

root]# df|tr -s " " "%"|cut -d% -f5|tr -d '[:alpha:]'

root]# df|cut -c44-46

root]# cat /var/log/messages |cut -d" " -f1-3,6-

文件的合併 paste 命令

paste 合併兩個文件同行號的列到一行

    -d    分隔符:指定分隔符,默認用TAB

    -s    全部行合成一行顯示 

wc 命令

Usage: wc [OPTION]... [FILE]...

-l     行數

-w    單詞數

-c    字節數

-m    字符數

-L    文件中最長行的長度

sort 命令

sort [options] file(s)

-r    執行反方向(由上至下)整理

-R    隨機排序

-n    執行按數字大小整理

-f    選項忽略字符串中的字符大小寫

-u    選項刪除輸出中的重複行

-t "分隔符"    使用#作爲字段定界符

-k #    選項按照使用"分隔符"字符分隔的 # 列來整理可以使用屢次

uniq 命令

uniq 命令:從輸入中刪除先後相接的重複的行

uniq  [option]...[file]...

    -c 顯示每行重複出現的次數

    -d 僅顯示重複過的行

    -u 僅顯示未曾重複的行

    注:連續且徹底相同方爲重複

常和 sort 命令一塊兒配合使用:

    sort userlist.txt |uniq -c

root]# lastb -f btmp.txt |tr -s " "|cut -d' ' -f3|sort|uniq -c|sort -nr|head

root]# file btmp.txt

btmp.txt: DBase 3 index file

lastb命令能夠打開 DBase 3 index file 類型的文件

root]# netstat -nt|tr -s " " ":"|cut -d: -f6|sort|uniq -c|sort -nr

比較文件 diff

[root@CentOS7 data]# cat a.txt 
a
d
e
f
b
[root@CentOS7 data]# cat b.txt 
a
b
c

[root@CentOS7 data]# diff -u a.txt b.txt |tee diff.txt
--- a.txt    2019-11-19 16:48:35.031046643 +0800
+++ b.txt    2019-11-19 16:29:14.884986531 +0800
@@ -1,5 +1,3 @@      //第一個文件的1到5行,第二個文件的1到3行
 a
-d                   //去掉d
-e                   //去掉e
-f                   //去掉f
 b
+c                //增長c ,就變成第二個文件了

[root@CentOS7 data]# rm -f b.txt

[root@CentOS7 data]# patch -b a.txt diff.txt 
patching file a.txt

[root@CentOS7 data]# ll
total 12
-rw-r--r-- 1 root root   6 Nov 19 16:57 a.txt           //b.txt
-rw-r--r-- 1 root root  10 Nov 19 16:48 a.txt.orig   // a.txt文件
-rw-r--r-- 1 root root 126 Nov 19 16:53 diff.txt

grep 命令

打印包含匹配模式的行

--color=auto    對匹配的文本着色顯示

-m #    匹配#次後中止

-v    顯示不被pattern匹配到的行

-i    忽略字符大小寫

-n    顯示匹配的行號

-c    統計匹配的行數

-o    僅顯示匹配到的字符串

-q    靜默模式,不輸出任何信息

-A #    後#行

-B #    前#行

-C #    先後各#行

-e    實現多個選項間的邏輯關係

-w    匹配整個單詞(字母、數字、下劃線組成)

-E    支持擴展的表達式

-F    至關於fgrep,不支持正則表達式

-f file.txt    根據模式文件處理

[root@CentOS7 ~]# nmap -v -sP 192.168.1.0/24|grep -B1 up|grep "Nmap scan report for"|cut -d "(" -f2|tr -d ")"
[root@CentOS7 ~]# nmap -v -A 192.168.1.1
相關文章
相關標籤/搜索