第三周學習總結之簡單文本處理

寫在最前

通過前面的學習,我們已經知道Linux是一個一切皆文件的系統,因此對文件的處理就顯得尤為重要,到目前為止,對于新手來說可能連鼎鼎大名的三劍客也未必聽過,不過在這之前我們也可以使用一些非常好用的文本處理工具來完成一些簡單文件的處理。本次內容就是講講如何使用幾個簡單文本處理工具的組合完成一些實用的功能。

文本處理工具

文本處理工具,用我的理解就是能夠對指定文本就行相應處理,提取輸出我們想要的結果。沿著這個思想,我們就來挖一挖這些工具,通過挖掘,下一些好用的命令就被我們給發現了,下面就給您慢慢講講他們都有哪些。

sort

功能描述:用于對文本進行排序。

語 ? ?法:sort ? [OPTION]… FILE…

選 ? ?項

  • -f: 忽略字符大小寫;
  • -t: 指定分隔符,默認為tab, -t “:”表示使用:為分割符;
  • -k: 指定分隔之后要進行排序比較的字段;
  • -n: 使用純數字進行排序;
  • -u: 排序后去重,表示相同的數據只顯示一行;
  • -b:忽略最前面的空格符部分

uniq

功能描述:略去重復的行。

語 ? ?法:uniq [OPTION]… [INPUT [OUTPUT]]

選 ? ?項

  • -d:只顯示存在重復的行;
  • -u:只顯示不重復的行;
  • -c: 顯示文件中行重復的次數;
  • -i:忽略大小寫;

wc

功能描述:統計文件的單詞數、字符數。

語 ? ?法:wc [OPTION]… [FILE]…

選 ? ?項

  • -l:列出行數;
  • -w:列出字(英文單字);
  • -c:列出字符數(字節數)

cut

功能描述:刪除文件每行中的特定部分。

語 ? ?法:cut OPTION… [FILE]…

選 ? ?項

  • -d: 指定分隔符;
  • -f: 依據-d將信息分段,取第幾段的意思;
  • -c:以字符取出固定區間;

tr

功能描述:翻譯或刪除字符。

語 ? ?法:tr [OPTION]… SET1 [SET2]

選 ? ?項

  • -d: 刪除指定內容;

示例演示

通過上面的講解,你可能還是一頭霧水,不要著急,下面的時間不是下課時間,而是練習時間,而且條條大路通羅馬,只要能達到目的,不管你用哪一種方法實現,都是OK的,好了,那就開始吧!

首先呢,需要說明的是后面的很多處理就不會是單一命令的實現,你可能需要結合前面所學的知識將多個命令組合起來使用。

(1)、列出當前系統上所有已經登錄的用戶的用戶名且同一個用戶登錄多次,則只顯示一次。

通過分析此題啊,首先要知道who命令是查看系統上的登陸用戶,并且還要取出他們的用戶名,也即是取出特定字段,這里可以使用cut命令,最后就是去重,通過上面的講解,我們知道sort有個參數就是去重的。有了解題思路,接下來就正式解題吧。

who|who|cut -d ” ” -f1|sort -u

301

(2)、取出最后登錄到當前系統的用戶的相關信息。

通過前面的學習,使用last命令就可以查看登錄到系統的用戶,通過查看登錄文件格式,可以發現最后登錄的反而實在第一行顯示,再使用cut命令截取出用戶名就可以查看此用戶的完整信息了。

last|head -1|cut -d ” ” -f1|id

302

(3)、取出當前系統上被用戶當做其默認shell的最多的那個shell。

在上一篇中我們說到用戶的完整信息保存在/etc/passwd文件中,因此此題的信息就可以在此文件中獲取,在通過上面的文件處理命令輔助就可以完成要求。

cut -d ‘:’ -f 7 /etc/passwd|sort -r|uniq -c|sort -nr|head -1

303

(4)、將/etc/passwd中的第三個字段值最大的后10個用戶的信息全部改為大寫后保存至/tmp/maxusers.txt中。

這里明確給出了以passwd文件的第三個字段就行排序,改為大寫不就是tr命令的功能么。

sort -t ‘:’ -k3n /etc/passwd|tail -10|tr ‘a-z’ ‘A-Z’>/tmp/maxusers.txt

304

(5)、取出當前主機的IP地址。

此題也是通過對ifconfig命令取到的結果進行信息切分,取出其中的IP地址。

ifconfig ens33|grep “netmask”|cut -c 13-26

305

(6)、列出/etc目錄下所有以.conf結尾的文件的文件名,并將其名字轉換為大寫后保存至/tmp/etc.conf文件中。

此題也是先要找出要求的文件,然后進行大小寫轉換即可。

ls /etc/|grep -E ‘.conf$’ |tr ‘a-z’ ‘A-Z’ >/tmp/etc.conf

306

(7)、顯示/var目錄下一級子目錄或文件的總個數。

此處主要用到wc統計個數的功能。

ls /var/|wc -l

307

(8)、取出/etc/group文件中第三個字段數值最小的10個組的名字。

此題上題中的題4類似,大致方法可參照題4。

sort -t ‘:’ -k3n /etc/group|head -10|cut -d ‘:’ -f 1

308

(9)、將/etc/fsteab和/etc/issus文件的內容合并為同一個內容后保存至/tmp/etc.test文件中。

此題讀取同一目錄下的兩個文件可以使用命令行展開方式。

cat /etc/{fstab,issue} >/tmp/etc.test

309

今天的練習就差不多這些了,您學會了么,其他很多看似復雜的問題進行分解,最終都是由一個一個命令組合而來的,就像Linux一樣,由眾多功能單一的小程序組合完成一個復雜的大程序。因此,我們遇到問題要學會剖析分析,這樣才能在雜亂無章中抽絲剝繭,最終出色的完成任務。

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/90427

(0)
蟲草君蟲草君
上一篇 2017-12-19 21:05
下一篇 2017-12-19

相關推薦

  • NFS的應用實例

    實驗目的:通過NFS實現共享 實驗要求:實驗環境下防火墻以及selinux都是要關閉的?。?! 實驗環境:三臺虛擬機,以及相關安裝程序 實驗過程: 設置服務端centos 6-1 [root@centos6 ~]# yum install mysql-servernfs-utils httpd [root@centos6 ~]# service mysqld …

    2017-05-03
  • GRUB

    什么是GRUB GRUB(boot loader):grub:GRand Unified Bootloader     有兩個版本:grub 0.x:grub legacy經典版;grub 2.x grub legacy:主要運行分三個階段 stage1(第一階段):安裝在mbr中 stage1.5(第1.5階段):存…

    Linux干貨 2016-09-21
  • web service之http協議

    一.概述 1.web應用的核心是http協議(HyperText Transfer Protocol),http協議的由兩部分組成,客戶端程序和服務器端程序,通過交換http報文進行會話。web頁面則是由對象(也叫資源)組成的,對象直白的說就是一個個的文件,而這些對象可以通過URL引用,URL由兩部分組成,存放對象的主機名和對象的文件路徑,而這些對象都存儲在…

    Linux干貨 2016-11-03
  • 來馬哥教育后

    來北京三天了,說實話,我長了不少見識,甚至可以說是見過了以前一些從沒想到過的事情,我拼了命往大城市來,如今如我所愿了,我來的時候發誓對自己說:我要留在北京,我也要積累足夠的資本讓自己真正成為大城市的上層社會人士,現在吃多少苦我都無所謂。 我以前在建筑工地的時候想:我將來能學IT是最幸福的事了。當時真是這么想的,等我真到馬哥教育,我發現,我把問題想的太簡單,就…

    Linux干貨 2018-03-26
  • 馬哥教育網絡班22期+第2周課程練習

    1、Linux上文件管理命令有哪些,其常用的相關示例演示。 常見文件管理命令有:touch/stat/file/rm/cp/mv/nano 示例如下: [root@localhost week2_test]# touch newfile [root@localhost week2_test]# ls&nbsp…

    Linux干貨 2016-08-22
  • 源碼編譯安裝之apache

    工具: Development tools組包 httpd-2.2.9.tar.gz links網站瀏覽工具   安裝apache之前需要安裝編譯需要的環境“Development tools”這個是編譯使用的必須的環境包,使用下面的命令可以安裝。 [root@CentOS6 ~]# yum groupinstall&…

    Linux干貨 2016-08-24

評論列表(1條)

  • 馬哥教育
    馬哥教育 2018-01-07 17:19

    贊,排版比較清晰,最后部分也有自己思考的部分,很贊~~繼續加油。

欧美性久久久久