linux中文本處理工具

  對于linux來講,文本處理是非常重要的,因為linux系統就是由無數的文件組成的,linux中一切皆文件。文件的處理方式有很多種,所以就有眾多的文本處理工具,各自作用于不同的文本處理方式。


一、查看文件命令:

   cat命令:處理顯示文件內容,不改變原文件

   cat命令常用于查看文件內容,也可通過不同的選項實現不同的顯示效果,只執行cat命令是會提供給用戶一個交互式的界面,輸入什么內容就顯示什么內容。

 格式:cat [選項] …文件…

 常用選項:

      -n:在顯示的內容前加上行號

      -A:顯示所有的控制符

      -E:顯示行結束符$

      -b:非空行編號

      -s:壓縮連續的空行為一行

示例:

[root@host ~]# cat f1

abcd 

aabbccdd

[root@host ~]# cat -n f1

     1 abcd 

     2 aabbccdd

     3

[root@host ~]# cat -A f1

abcd $

aabbccdd$

$

[root@host ~]# cat -E f1

abcd $

aabbccdd$

$

[root@host ~]# cat -b f1

     1 abcd 

     2 aabbccdd


二、分頁查看文件命令:


  more命令:分頁查看文件內容,在查看文件時,用時候會遇到文件特別大,一屏根本顯示不完,這時我們就用到了分頁查看工具,可以方便的把文件進行分頁,從而方便查看

 格式:  more [選項…] 文件..

 常用選項:

      -d:屏幕下方顯示提示信息

  用法:使用回車鍵向下翻一行,使用空格鍵向下翻一屏

截圖:

所示.png

 

less命令:一頁頁地查看文件內容標準輸出,提供了比more更為強大的功能

查看使用的命令有:

  可以向上和向下查看,也可進行搜索,

  PgUp:向上翻一屏

  PgDn:向下翻一屏

  回車鍵、下箭頭:向下翻一行

  上箭頭:向上翻一行

  搜索功能

  也可插入 / 或 ?在其后輸入要查找的內容

  /從光標向下搜索

  ?從光標處向上搜索

   可結合n/N跳到下一個或上一個匹配的項


三、顯示文件前幾行、后幾行的內容的命令


  head命令:顯示文件的前幾行內容(默認顯示前十行)

   格式:head [選項].. 文件..

   常用選項;

        -c #:指定獲取前#個字節

        -n #:指定獲取錢#行

        -#:指定行數


示例:

[root@host ~]# head -c 100 /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/nol[root@host ~]# head -n 3 /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

[root@host ~]# head -3 /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

[root@host ~]#


   tail命令:顯示文件后幾行的內容(默認為后十行)  

  格式: tail [選項]…文件…

  常用選項:

       -c #:指定后獲取#個字節

       -n #:指定獲取后#行

       -#:指定后#行

       -f:跟蹤顯示文件新添內容的變化,多用于監控日志

  用法與head命令相同


四、按列抽取文本命令與合并文本命令


     cut命令:按列抽取文件內容

   格式:cut [選項]…文件…

 常用選項:

       -d 分隔符:指明分隔符,默認為tab

       -f 數字:

         #:指定第#個字段

         #,#[#]:離散的多個字段,例如1,3,5

         #-#:連續的字段 例如1-4

         混合使用:1-3,5

       -c:按字符分割

       –output-delimiter=STRING 指定輸出分割符

示例:

[root@host ~]# cut -d: -f1,3-5 /etc/passwd

root:0:0:root

bin:1:1:bin

daemon:2:2:daemon

adm:3:4:adm

[root@host ~]# cut -c1-10 /etc/passwd

root:x:0:0

bin:x:1:1:

daemon:x:2

adm:x:3:4:

[root@host ~]# cut -d: -f1,2 –output-delimiter=# /etc/passwd

root#x

bin#x

daemon#x

adm#x


   paste命令:合并兩個文件同行號的列到一行


   格式: paste [選項]…文[件]…

   常用選項:

         -d 分隔符:指定分隔符,默認為tab

         -s:所用行合并成一行顯示

示例:

[root@host ~]# cat f1 f2

abcd 

auuuuy

00000000000

abcd 

auuuuy

00000000000

[root@host ~]# paste f1 f2

abcd abcd 

auuuuy auuuuy

00000000000 00000000000

[root@host ~]# paste -s f1 f2

abcd auuuuy 00000000000

abcd auuuuy 00000000000



五、分析文本工具:

     wc命令:收集文本統計數據,能夠統計出文件的單詞數、行數、字符數、字節數,作用對象可以是文本也可以是標準輸出,常與管道結合使用。

  格式:wc [選項]

默認不加選項將輸出行數、單詞數、字符數

   選項;

      -l:統計行數

      -c:統計字節數

      -w:統計單詞數

      -m:統計字符數(當統計漢字時與-c選項有區別)

示例:

[root@host ~]# cat /etc/passwd | wc

     47      91    2448

[root@host ~]# cat /etc/passwd | wc -l

47

[root@host ~]# cat /etc/passwd | wc -c

2448

[root@host ~]# cat /etc/passwd | wc -w

91


     sort命令:文本排序命令,把處理過的內容顯示出來,不會改變源文件內容

   格式: sort [選項] 文件

   常用選項:

        -r:反向排序(由上至下)

        -n:按數字大小排序

        -f:忽略字符大小寫

        -u:刪除輸出中重復的行

        -t 分隔符:指定分割符

        -k 數字段:按照-t指定的分隔符確定以哪一列進行排序

示例:

[root@host ~]# cat f1

123

23

45

4

[root@host ~]# sort f1

123

23

4

45

[root@host ~]# sort -n f1

4

23

45

123

[root@host ~]# sort -nr f1

123

45

23

4

[root@host ~]# sort -t: -k 3 /etc/passwd

root:x:0:0:root:/root:/bin/bash

zhang:x:1000:1000:zhang:/home/zhang:/bin/bash

bash:x:1001:1001::/home/bash:/bin/bash

basher:x:1002:1002::/home/basher:/bin/bash


   uniq命令:從輸入中刪除重復的行(連續的且完全相同的為重復)

  格式: uniq [選項]…[文件]…

  選項:

    -c:顯示重復的行的次數

    -d:僅顯示重復的行

    -u:僅顯示不重復的行

示例:

 

[root@host ~]# cat f1

45

23

45

45

[root@host ~]# uniq -c f1

      1 45

      1 23

      2 45

[root@host ~]# uniq -d f1

45

[root@host ~]# uniq -u f1

45

23

           

   diff命令:diff命令用于比較文件的內容,特別是比較兩個版本不同的文件以找到改動的地方。diff在命令行中打印每一個行的改動。diff程序的輸出被稱為補丁 ,因為Linux系統中還有一個patch程序,可以根據diff的輸出將誤刪除的diff格式的其中一個文件恢復回來,不過用于恢復的文件會飛改名。

  格式: diff [選項] 文件1 文件2…

    選項:

       -u:在恢復diff格式文件時選用

    patch命令:復制在其他文件中進行的改變

    選項:

        -b:自動備份改變了的文件

示例:

[root@host ~]# cat f1 f2

auuuuy

00000000000

abcd 

auuuuy

00000000000

[root@host ~]# diff f1 f2

0a1

> abcd 

1a3

[root@host ~]# diff -u f1 f2 > f.log

[root@host ~]# rm -f f1

[root@host ~]# patch -b f2 f.log 

patching file f2

Reversed (or previously applied) patch detected!  Assume -R? [n] y

[root@host ~]# ls

anaconda-ks.cfg  Documents  f2       f.log  Pictures  Templates  wc

Desktop          Downloads  f2.orig  Music  Public    Videos

[root@host ~]# cat f2 f2.orig 

auuuuy

00000000000

abcd 

auuuuy

00000000000


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

(0)
ZJMZJM
上一篇 2016-08-08 16:15
下一篇 2016-08-08 16:15

相關推薦

  • 馬哥教育網絡班22期+第1周課程練習

    一、計算機組成部分及其功能:硬件系統和軟件系統     1、計算機的硬件系統組成及其功能:         運算器:處理數據的算術運算及邏輯運算即數據加工處理;         控制器:根據…

    Linux干貨 2016-08-15
  • Linux計劃任務

    計劃任務 Linux任務計劃、周期性任務執行 ? 未來的某時間點執行一次任務:     at     batch:系統自行選擇空閑時間去執行此處指定的任務 ? 周期性運行某任務:      cron at任務 …

    Linux干貨 2016-09-10
  • Mysql之主從復制

    Mysql之主從復制 節點一 修改配置文件設置唯一ID開起二進制日志 [root@node1 ~]# vim /etc/my.cnf 增加以下內容     [mysqld]     log-bin=master_bin &nbsp…

    Linux干貨 2016-07-19
  • 第十一周作業

    第十一周作業 1、詳細描述一次加密通訊的過程,結合圖示最佳 第一階段:ClientHello: 支持的協議版本,比如tls 1.2; 客戶端生成一個隨機數,稍后用戶生成“會話密鑰” 支持的加密算法,比如AES、3DES、RSA; 支持的壓縮算法; 第二階段:ServerHello 確認使用的加密通信協議版本,比如tls 1.2; 服務器端生成一個隨機數,稍后…

    2017-10-29
  • 通過Nginx來安裝一個Discuz

    這次由于時間有限,所以我就沒有用編譯安裝來啟動LMP,只有Nginx 是編譯安裝的 因為是在centos7上面安裝的Nginx所以我們這里由于能力有限,暫時不能將其加入開機啟動,日后我會進行改進,將其加入開機啟動。這里我們給出Nginxd的編譯選項及環境   yum groupinstall "Development&…

    Linux干貨 2016-10-30
  • FHS文件系統各目錄功能

        FHS文件系統各目錄功能 前言                  FHS (Files system Hiserarchy Standard)…

    Linux干貨 2016-10-17
欧美性久久久久