文本處理工具

文本處理工具
1、查看文件內容
cat -v 顯示非打印字符
      -E 顯示$
     -T 顯示TAB
     -n 顯示行號
     -s 將連續的重復空行變成一行
     -A = -vET
less
2、文件截取
head -n 行號 顯示前n行
          -行號 顯示前n行
          -c 字節數 顯示前n個字節
tail -n 行號 顯示后n行
       -行號 顯示后n行
       -c 字節數 顯示后n個字節
       -f 動態顯示
3、按列抽取
cut -d 指定分隔符
       -f 選取第幾列

截取列,并指定分隔符

clipboard

文本處理工具
paste paste f1 f2 [f3]
paste -s f1 將文件內容變成一行顯示 也可以用 tr ‘\n’ ‘\t’ 實現
paste -d “” f1 f2 [f3] 合并后的分隔符,默認TAB
4、按關鍵字抽取行
grep –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
5、收集文本統計數據
wc -m 字符數
      -c 字節 一個漢字3字節,一個單詞一字節
      -l 行數
    -w 單詞數
6、文本排序
sort -r 執行反方向(由上至下)整理?
       -n 執行按數字大小整理
       -f 選項忽略(fold)字符串中的字符大小寫
       -u 選項(獨特,unique)刪除輸出中的重復行
       -t c 選項使用c做為字段界定符
       -k X 選項按照使用c字符分隔的X列來整理能夠使用多次
uniq 去除連續的重復行要想去除非連續的行,先用sort排序
         -c 顯示連續重復的次數
         -d 僅顯示重復的次數
         -u 僅顯示不曾重復的行
         sort userlist.txt | uniq -c 常配合使用用來統計重復次數排序
7、比較文件
diff -u f1 f2 > diff.log 生成補丁
patch -b f1 diff.log 通過補丁還原文件
正則表達式課后題
留給后人的一筆財富
1、顯示/proc/meminfo文件中以大小s開頭的行(要求:使用兩種方法)
cat /proc/meminfo|grep “^[Ss]”
cat /proc/meminfo|grep -i “^s”
cat /proc/meminfo|grep -e ^s -e ^S
cat /proc/meminfo|grep “^s\|^S”
cat /proc/meminfo|grep “^[s\|S]”
2、顯示/etc/passwd文件中不以/bin/bash結尾的行

 grep -v “/bin/bash$” /etc/passwd

clipboard

3、顯示用戶rpc默認的shell程序
grep “^rpc\>” /etc/passwd | cut -d : -f7
grep -w “^rpc” /etc/passwd | cut -d : -f7

clipboard

4、找出/etc/passwd中的兩位或三位數
cat /etc/passwd |grep -o “\<[0-9]\{2,3\}\>”

clipboard

5、顯示CentOS7的/etc/grub2.cfg文件中,至少以一個空白
字符開頭的且后面存非空白字符的行
cat /etc/grub2.cfg |grep “^[[:space:]]\+[^[:space:]]”

clipboard

6、找出“netstat -tan”命令的結果中以‘LISTEN’后跟任意多
個空白字符結尾的行
netstat -tan|grep “\<LISTEN\>[[:space:]]*$”

clipboard

7、顯示CentOS7上所有系統用戶的用戶名和UID
cat /etc/passwd |cut -d: -f1,3 |grep “\<[[:digit:]]\{1,3\}\>”$

clipboard

注:centos7 系統用戶UID<1000
8、添加用戶bash、testbash、basher、sh、nologin(其shell
為/sbin/nologin),找出/etc/passwd用戶名同shell名的行
cat /etc/passwd | grep “\(^.*\)\>.*\/\1$”

clipboard

9、僅利用df和grep和sort,取出磁盤各分區利用率,并從大到小排序
df |grep ^/dev/sd |grep -o “\b[[:digit:]]\{1,3\}\b%”|sort -rn

clipboard

注:取出磁盤分區dev/sd
?。?!以下自己做的不確定對錯
1、顯示三個用戶root、mage、wang、的UID和默認shell
[root@localhost ~]# cat /etc/passwd |grep -E “^(root|mage|wang)” |cut -d: -f3,7

clipboard

2、找出/etc/rc.d/init.d/functions文件行首為某單詞(包括下劃線)后面跟一個小括號的行
[root@localhost ~]# cat /etc/rc.d/init.d/functions |grep “.*()”

clipboard

3使用egrep取出/etc/rc.d/init.d/functions中其基名

clipboard

4、使用egrep取出上面路徑的目錄名
[root@localhost ~]# echo /etc/rc.d/init.d/functions |egrep -o “^(/).*\1”

clipboard

5、統計last命令中以root登錄的每個主機IP地址登錄次數

clipboard

6、利用擴展正則表達式分別表示0-9、10-99、100-199、200-249、250-255

clipboard

7、顯示ifconfig命令結果中所有IPv4地址
[root@centos6 ~]# ifconfig |grep -w “inet addr” |tr -s ” ” “:” |cut -d: -f4

clipboard

[root@centos6 ~]# ifconfig |egrep -o “([0-9]{3}(\.[0-9]{1,3}){3})”

clipboard

8、將此字符串:welcome to magedu linux 中的每個字符去重并排序,重復次數多的排到前面

clipboard

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

(0)
jieranjieran
上一篇 2017-07-30 20:28
下一篇 2017-07-30 20:54

相關推薦

  • 文件系統的創建和管理

    作業:文件系統的創建和管理 思路:管理通常就是增刪改查[*代表某一數值,測試機centos6使用的就是ext4,不要問我為什么了,馬哥告訴我的,你問他吧!];   事情準備檢查系統支持和使用的文件系統格式:         #lsmod  &nbsp…

    Linux干貨 2016-01-19
  • apache自動化腳本搭建虛擬主機

    1 基于主機名實現三個虛擬主機 (1).創建網站目錄與測試文件 (2).創建虛擬主機文件(目錄為/etc/httpd/conf.d/下)   (3).修改測試apache主機hosts文件(就不用DNS服務器解析,方便測試),測試httpd配置文件是否有問題,重啟httpd服務   (4)修改測試主機hosts文件(就不用DNS服務器解析…

    Linux干貨 2016-10-09
  • Linux之bash shell腳本編程入門篇(三)之循環以及函數function的使用

    bash shell腳本編程入門篇(三)之循環 什么是循環執行?     將某代碼段重復運行多次     重復運行多少次:         循環次數事先已知    &nb…

    Linux干貨 2016-08-22
  • 編譯安裝——吐血經驗,內附腳本

    程序包編譯安裝: 源碼包:name-VERSION-release.src.rpm         rpm由源碼包安裝后,使用rpmbuild命令制作成二進制格式的rpm包,而后再安裝        &nbsp…

    Linux干貨 2016-08-24
  • shell腳本編程

    Shell腳本是包含一些命令或聲明,并符合一定格式的文本文件。 程序:指令+數據 程序編程風格 過程式  以指令為中心,數據服務于指令。 對象式  以數據為中心,指令服務于數據。 Shell程序:提供了編寫和能力,解釋執行。 編程邏輯處理方式:           順序執行   …

    Linux干貨 2016-08-15
  • 用戶及組概念和管理

    用戶和組概念 /etc/passwd文件字段含義 root:x:0:0:root:/root:/bin/bash 用戶名:登陸名,具有唯一性 密碼存放加密用戶的密碼,看到的是一個x,其實已經映射到/etc/shadow文件中 UID:用戶ID GID:組群ID 用戶名全稱:可以不設置 主目錄:用戶登陸系統中首先進入的目錄 登陸Shell:用戶使用shell類…

    Linux干貨 2016-11-04
欧美性久久久久