字元 | 意義 |
---|---|
^w |
以w爲行首 |
w$ |
以w爲行尾 |
. |
一個任意字元 |
\ |
跳脫符 |
* |
萬用字元 |
[abc] |
一個是a或者是b或者是c的字元 |
[0-9] |
一個0到9中的任意字元 |
[^abc] |
一個非abc的任意字元 |
w\{n\} |
n個w |
w\{n,\} |
n以上個w |
w\{n,m\} |
n到m個w |
字元 | 意義 |
---|---|
w+ |
一個以上的w |
w? |
零個或一個w |
gd|good|dog |
gd或者good或者dog,注意,這種用法需要獨立作爲一個關鍵字字串 |
(gd|good|dog) |
這種用法可以作爲字串的一部分。 |
(abc)+ |
一個以上的「abc」 |
sed是一個數據處理工具,用於將數據進行替換、刪除、新增、選取特定行等。
sed也是一個需要輸入的管道命令。
sed [-nefr] [n1[,n2]]function
sed的各功能比較複雜,宜使用sed --help
來具體檢視。
範例:
nl /etc/passwd | sed '2,5d'
nl /etc/passwd | sed '2a drink tea'
sed可以不作爲需要輸入的管道命令而直接處理檔案。
sed -i [n1[,n2]]function filename
printf
printf 'format' content
和C語言很類似。
範例:
比如Printf '%s \t' $(cat printf.txt)
據說printf就是直接呼叫C語言的printf而實現,所以特殊樣式參照C語言。
awk也是一個數據處理工具,一般用於整行處理。
暫時還用不上awk,對於書上的東西暫時也不是很好理解,先Mark一下。
https://www.runoob.com/linux/linux-comm-awk.html
用於比對兩個ASC2文字檔案,以行爲單位比對。
diff通常用於比對同一個檔案的新舊版本差異。
diff [-bBi] one-file the-other-file
-b
:忽略多個空白的差異,比如("about me"與"about me"則認爲相同)。
-B
:忽略空白行的差異。
-i
:忽略大小寫不同。
cmp以位元組爲單位比對,所以也可以比對二進制檔案
cmp [-l] file1 file2
-l
:將所有不同處都列出來(預設只會列出第一個不同的地方)