Linux中常用命令之一 文字處理

2021-05-28 09:42:27 字數 4536 閱讀 1725

注意:(1) 在「[ ]」中還可以使用「-」來表示某一範圍。例如「[a-z0-9]」匹配任意的小寫字母或者數字,「[^a-z]」表示非大寫字母,「[0-9]」表示任意乙個8位數字。

(2) 元字元還可以配合使用:

「.*」可以匹配任意個字元,如「r.*d」會匹配「rd」、「red」、「read」。

「.+」可以匹配任意的乙個或者多個字元,如「r.+d」會匹配「red」、「read」,但不會匹配「rd」。

「.?」可以匹配任意的零個或乙個字元,如「r.?d」會匹配「rd」、「red」,但不會匹配「read」。

「^$」匹配空白行。

(3) 在[ ]中還可以使用一些特殊匹配模式,如下表:

以「\」開頭得元字元

1、   grep命令

命令說明:按行處理,輸出檔案中包含搜尋字串的所有行。

格式:grep [-acinv] 『搜尋字串』 filename

引數說明:

-c:計算找到「搜尋字串」的次數;

-i:忽略大小寫;

-n:輸出行號;

-v:反向選擇;

-e:擴充套件正規表示式

例子:在檔案a.txt中搜尋包含字串good或glad的行:

grep -e 'g(oo|la)d' a.txt

找到以字母a結尾的單詞:

grep -e 'a[[:blank]]' a.txt

grep -e 'a\\b' a.txt

命令說明: 查詢符合條件的檔案

格式:find [path] [options][tests] [actions]

引數說明:

命令說明:按行處理,將一行訊息的某段切出來。

格式:cut -d '分割字元' -f fields

cut -c m-n

例如:echo $path | cut -d ':' -f 3,5,取出環境變數path中的第3個和第5個路徑。

echo $path | cut -d ':' -f 3-5,取出環境變數path中的第3個到第5個路徑。

export | cut -c 12-, 將export中的每行的前面11個字元刪除留,保留從第12個字元開始的所有字元。

命令說明: 將一行訊息分成數個段來處理,適合處理小型的資料。

格式:awk '條件型別 ' file

awk的內建變數:

$n:該行的第n個字段;

nf:每一行擁有的字段總數;

nr:當前行的行號;

fs:分隔符,預設為空格鍵;

例如:cat /etc/passwd | awk 'begin $s3<10 ',列印passwd檔案第三欄小於10的行的第1、3欄。

命令說明: 分析stdin的資料,將資料處理後,輸出到stdout。

格式:sed [-nefr] 動作

引數說明:

-n:安靜模式,僅顯示經過sed特殊處理的行;

-f file:將sed操作寫在乙個檔案中;

-r:支援擴充套件正規表示式語法;

動作說明:[n1[, n2]] functions

其中,n1和n2代表「選擇進行操作的行數」,function有下面這些操作:

a:新增,例如:nl /etc/passwd | sed '2a hello world',在/etc/passwd第2行下面新增一行,寫入"hello world"。

i:插入,例如:nl /etc/passwd | sed '2i hello world',在/etc/passwd第2行上面新增一行,寫入"hello world"

c:替換,例如:nl /etc/passwd | sed '2,5c hello world',將/etc/passwd第2至5行的內容替換為「hello wolrd」。

d:刪除,例如:nl /etc/passwd | sed '2,5d',刪除/etc/passwd中的第2至5行。

p:列印,例如:nl -n /etc/passwd | sed '2,5p',僅顯示2到5行,注意,如果不加-n,2到5行將重複輸出。

s:搜尋,例如:nl /etc/passwd | sed '1,20s/old/new/g',將第1~20行中出現的所有字串old替換為new。

6、sort命令

命令說明:將文字檔案的內容按行排序。

格式:sort [-fbmnrtuk] [file or stdin]

引數說明:

-f:忽略大小寫;

-b:忽略最前面的空格;

-u:即uniq,重複行僅出現一次;

-m:以月份的名字來排序;

-n:使用「純數字」來排序;

-r:反向排序;

-t:分隔符,預設為tab鍵;

-k:按指定字段排序;例如: cat /etc/passwd | sort -t ':' -k 3,對檔案/etc/passwd以第三欄排序。

7、uniq命令

命令說明:如果排序完成了,將重複的行僅顯示一次。注意,若檔案未排序,該命令失效。

格式:uniq [-ic]

引數說明:

-i:忽略大小寫;

-c:統計每行重複的次數;

命令說明:統計文字檔案中有多少字,多少行,多少字元。

格式:wc [-lwm]

引數說明:

-l:僅顯示行數;

-w:僅顯示字數(英文單詞個數);

-m:字元數;

命令說明:雙向重導向,從標準輸入讀取資料,輸出到螢幕上,同時儲存成檔案。

格式:tee [-a] file

引數說明:

-a:以累加的方式,將資料加入到file中。

例如:ls -al /home | tee ~/myfile | more,將ls命令的資料存乙份到myfile中,同時螢幕也有輸出資料。

命令說明:單個字元的處理工具,可以用於刪除字元、替換字元等基本功能。更複雜的字串處理工具通常使用sed。

格式:tr [-ds] set1....

引數說明:

-d:刪除,例如:cat file | tr -d '\r',相當於dos2unix命令所起的作用。

-s:替換字元,例如:cat file | tr -s [0-9],如果某個數字連續出現,僅保留第乙個。

cat file | tr [a-z] [a-z],將file中的小寫字元全部改為大寫。                                

命令說明:格式化顯示列。

格式:col [-x]

引數說明:

-x:將tab鍵轉換成對等的空格鍵;

例如:cat -a /etc/man.config | col -x | cat -a,使用cat -a,tab鍵會以^i顯示,經過col -x處理,tab替換為空格。

命令說明:將tab鍵轉換成空格鍵。

格式:expand [-t] file

引數說明:

-t n:後面可以接乙個數字n,乙個tab鍵替換為n個空格鍵,預設值為8。

命令說明:處理兩個檔案中有相同資料的行,將它們加在一起。

格式:join [-ti12] file1 file2

引數說明:

-i:忽略大小寫;

-t:分隔符,預設為空格符;

-1 m:指定file1用來比較的字段m,預設值為1;

-2 n:指定file2用來比較的字段n,預設值為1;

14、paste命令

命令說明:比較兩個檔案的資料關聯性,直接將「兩行貼在一起」,中間以tab鍵隔開。

格式:paste [-d] file1 file2

引數說明:

-d:後面接分隔符,預設為tab鍵。

15、diff命令

命令說明:以「行」為單位進行檔案比較,一般用在ascii純文字檔案。

格式:diff [-bbi] file1 file2

引數:-b:忽略一行中有多個空白的差異;

-b:忽略空白行的不同;

-i:忽略大小寫;

命令說明:以「位」為單位進行檔案比較,可以比較二進位制檔案。

格式:cmp [-s] file1 file2

引數:-s:將所有不同點的位都列出來,預設僅輸出第乙個發現的不同點;

命令說明:diff old new > patch_file命令可以找出new檔案與old檔案不同的地方,然後用patch命令給old檔案打上補丁,即與new檔案相同了。

格式:patch -pn < patch_file

引數:-pn表示取消n層目錄。

命令說明:將乙個大檔案拆分為幾個小檔案。

格式:split [-bl] fle 

引數說明:

-b:拆分的檔案大小,可加單位,如b, k, m等;

-l:按行數進行拆分;

例如:split -b 512k bigfile smallfile,將檔案bigfile按512k拆分,拆分後的檔案依次為:smallfileaa、smallfileab等。

split -l 10 bigfile smallfile,將檔案bigfile中的每10行拆分成乙個小檔案。

一文 讀懂 Git 常用命令

1.自報家門 git config global user.name slightlee git config global user.email lmm work 163.com 檢視配置 git config list 2.建立版本庫 進入到 e盤目錄 cd e 建立資料夾 mkdir shop...

Linux常用命令之一

linux常用命令之一 學習目標 1 使用者管理命令 2 基本的檔案和目錄操作命令 一 linux使用者管理命令 1 修改密碼命令 passwd root帳號可無條件的修改任何使用者的密碼 使用者本身也可以用它來修改自己的密碼 如果使用者本身已經設定了密碼,則在修改密碼時需要輸入舊密碼。注 密碼最短...

linux常用命令之一

建立使用者 useradd 使用者名稱hadoop1 為使用者建立及更新密碼 passwd 使用者名稱hadoop1 為使用者賦予跟root一樣的許可權,vi etc sudoers 在root all all all後面加入hadoop1 all all all all 切換使用者 su hado...