Linux基礎入門(五) 學習筆記 歷史命令

2021-08-08 16:15:34 字數 2664 閱讀 9911

介紹

wget 

.aliyuncs

.com/courses/1/data1

裡面記錄是一些命令的記錄,現在需要你從裡面找出出現頻率次數前3的命令並儲存在/home/shiyanlou/result。

目標處理文字data

將結果寫入result

結果包含次數和命令,如「100 ls」

提示cut擷取(-c 8- 明白含義嗎)

uniq -dc去重

sort 的引數選擇-k1 -n -r

答案類似於

cat data

|....|

....

|...

.> /home/shiyanlou/result

**

cat data1| cut -c

8-| cut -d

' '-f

1| sort | uniq -dc

| sort -t

' '-k1

-n-r

| head -

3> /home/shiyanlou/result

第二個:

cat data1| cut -c

8-| sort | uniq -dc

| sort -t

' '-k1

-n-r

| head -n-3

> /home/shiyanlou/result

首先解析一下 cut -c 8- , 這個是 cut 命令,引數 -c 8- 表示從 第8 字元開始到最後,注意一下cut 的主要引數:

主要引數

-b :以位元組為單位進行分割。這些位元組位置將忽略多位元組字元邊界,除非也指定了 -n 標誌。

-c :以字元為單位進行分割。

-d :自定義分隔符,預設為製表符。

-f :與-d一起使用,指定顯示哪個區域。

-n :取消分割多位元組字元。僅和 -b 標誌一起使用。如果字元的最後乙個位元組落在由 -b 標誌的 list 引數指示的

範圍之內,該字元將被寫出;否則,該字元將被排除。

至於為什麼是 8- ,cat data1數了一下命令開始位置正好是第8位。

然後第乙個答案比第二個答案多了乙個 cut -d 』 』 -f 1, 這裡涉及到了cut 的另外乙個命令,以空格為分隔符,選取第乙個域,這樣,第乙個命令和其他的路徑等分開了。這種答案也就是指考慮第乙個命令,後面的差異不管。

然後就是 sort | uniq -dc 這裡涉及到兩個命令, uniq命令可以去除排序過的檔案中的重複行,因此uniq經常和sort合用。也就是說,為了使uniq起作用,所有的重複行必須是相鄰的。前兩天偷懶,沒有做筆記,下面是uniq命令的介紹(借鑑部落格:linux sort,uniq,cut ,wc 命令)

uniq

[-icu]

-i:忽略大小寫字元的不同;

-c:進行計數

-u:只顯示唯一的行

testfile的內容如下:

hello

world

friend

hello

world

hello

使用uniq 去重,沒有效果:

uniq testfile

hello

world

friend

hello

world

hello

排序檔案,預設是去重

cat words | sort |uniq

friend

hello

world

排序之後刪除了重複行,同時在行首位置輸出該行重複的次數

sort testfile | uniq -c

1 friend

3 hello

2 world

僅顯示存在重複的行,並在行首顯示該行重複的次數

sort testfile | uniq -dc

3 hello

2 world

僅顯示不重複的行

sort testfile | uniq -u

friend

然後就是 sort -t 』 』 -k1 -n -r 這個就是重新根據去重後的數量排序的命令。引數的具體含義是-k 1 按照第乙個區域排序, -n 使用純數字排序,-r 是反向排序。

其餘命令如下:

選項引數

-f忽略大小寫的差異,例如 a 與 a 視為編碼相同

-b忽略最前面的空格符部分

-m以月份的名字來排序,例如 jan, dec 等等的排序方法

-n使用『純數字』進行排序(預設是以文字型態來排序的)

-r反向排序

-u就是 uniq ,相同的資料中,僅出現一行代表

-t分隔符,預設是用 [tab] 鍵來分隔

-k以那個區間 (field) 來進行排序的意思

最後 head -n -3 或者 head -3 輸出前三個,貌似不加-n 的引數影響不大。通過』>』 從輸出端 重定向到 檔案 /home/shiyanlou/result

如果從整體上,所有命令的角度考慮,第二個答案是對的,也是實驗可以通過的,如果只是考慮第乙個命令,那第一種答案是對的。

C C 學習筆記 基礎入門系列(五)

第一部分 helloworld的起點 第二部分 初探資料型別 一 第三部分 初探資料型別 二 第四部分 認識運算子 一 第五部分 認識運算子 二 第六部分 理清思路,寫好邏輯結構 一 第七部分 理清思路,寫好邏輯結構 二 第八部分 理清思路,寫好邏輯結構 三 第九部分 資料處理神器之陣列 一 第十部...

linux入門學習筆記(五)程序管理

在我們進入it行業之後,會聽到許多關於程序的話題,從最簡單的殺死乙個程序,終止乙個程序,到深入一些的父程序創造子程序等等。那麼什麼是程序呢?簡單來說程序就是乙個正在執行中的程式。user 執行程序的使用者 pid 程序id cpu cpu佔用率 mem 記憶體佔用率 vsz 占用虛擬記憶體 rss ...

Linux 基礎入門(二) 學習筆記

檔案打包與壓縮 介紹 linux 上常用的壓縮 解壓工具,主要講解 zip,rar,tar 的使用 檔案字尾名 說明 zip zip 程式打包壓縮的檔案 rar rar 程式壓縮的檔案 7z 7zip 程式壓縮的檔案 tar tar 程式打包,未壓縮的檔案 gz gzip 程式 gnu zip 壓縮...