Linux 文本操作的三大神器:grep、sed、awk,各自的最佳應用場景:
- grep:使用正則表達式搜索文本,並把匹配的行打印出來,是強大的文本搜索工具;
- sed:用於編輯匹配到的文本,是一種流編輯器;
- awk:能夠對文本進行復雜的格式處理,是一種處理文本的語言。
接下來,會依次對這三個命令進行介紹,方便快速上手。
首先是 grep。
1、命令功能
grep 的主要功能是在文件中查找/過濾所需要的內容。
比如查看 ip 地址的命令:
<code>ifconfig
| grep inet/<code>
2、命令格式
<code>grep
[option]
pattern
file
/<code>
其中,option 是 grep 命令的參數,pattern 是所需查找/過濾的內容,file 是指定的文件。
3、命令參數
- -A:除了顯示匹配 pattern 的那一行外,顯示該行之後的內容
- -B:除了顯示匹配 pattern 的那一行外,顯示該行之前的內容
- -C:除了顯示匹配 pattern 的那一行外,顯示該行前、後的內容
- -c:統計匹配的行數
- -e:同時匹配多個pattern
- -i:忽略字符的大小寫
- -n:顯示匹配的行號
- -o:只顯示匹配的字符串
- -v:顯示沒有匹配pattern的那一行,相當於反向匹配
- -w:匹配整個單詞
4、grep應用示例
比如有一個hello.txt,內容如下:
通過設定不同命令參數的示例如下:
同時匹配多個pattern(-e)和忽略大小寫(-i)很方便查找:
顯示行號(-n)可以快速定位:
反向匹配(-v)也經常用到:
5、常用的正則表達式
常用的正則表達式:
- .:任意單個字符
- *:任意字符多次
- []:指定範圍,如[0-9]、[a-z]、[A-Z]、[0-9a-zA-Z]
- ^:行首
- $:行尾
- ^$:空行
比如有一個hello.txt,內容如下:
使用正則表達式的匹配示例: