功能說明
grep(Global Regular Expression Print)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來。其格式如下
grep[選項]pattern file
grep命令的選項及其說明如下
使用案例
[root@tony data]# vim teach.txt #創建測試數據(編輯測試數據內容)
Program language
Java
C
C++
PHP
Python
Ruby
OS
Windows
windows
Linux
Mac
Unix
Android
IOS
過濾掉指定的字符串(“windows”)匹配的行並忽略大小寫後將結果輸出
[root@tony data]# grep -vi 'windows' teach.txt #忽略大小寫並過濾包含Windows字符串的行
Program language
Java
C
C++
PHP
Python
Ruby
OS
Linux
Mac
Unix
Android
IOS
過濾掉多個匹配字符串內容(‘Android|IOS’)的行並將結果輸出
[root@tony data]# grep -vE 'Android|IOS' teach.txt #過濾Android和IOS字符串對應的行
Program language
Java
C
C++
PHP
Python
Ruby
OS
Windows
windows
Linux
Mac
Unix
查找指定的進程
[guanglei@tony data]$ ps -ef|grep ssh #查找SSH遠程加密連接的進程
root 1403 1 0 09:54 ? 00:00:00 /usr/sbin/sshd
root 1509 1403 0 10:00 ? 00:00:00 sshd: guanglei [priv]
guanglei 1511 1509 0 10:00 ? 00:00:00 sshd: guanglei@pts/1
guanglei 1654 1512 0 10:21 pts/1 00:00:00 grep ssh
2 sed命令
功能說明
sed主要用來編輯文件,簡化對文件的反復操作,編寫轉換程序等,擅長取行。其格式如下
sed [選項] [n1,[n2]][function],n1,n2表示選擇行數的區間
選項
說明
-n
取消默認輸出
-i
改變文件內容
fuction:
d:刪除
i:插入
p:打印
s:替換
使用案例
查找匹配字符串內容的行
[root@tony data]# sed -n '/J/p' teach.txt #匹配指定字符串的行
Java
刪除匹配字符串內容的行
[root@tony data]# sed -i '/Python/d' teach.txt
[root@tony data]# cat teach.txt
Program language
Java
C
C++
PHP
Ruby
OS
Windows
windows
Linux
Mac
Unix
Android
IOS
[root@tony data]#
實現文件內容的替換
[root@tony data]# sed -i 's#Android#android6.0#g' teach.txt #將Android替換成Android6.0
[root@tony data]# cat teach.txt
Program language
Java
C
C++
PHP
Ruby
OS
Windows
windows
Linux
Mac
Unix
android6.0
IOS
實現指定文件內容的查找並替換
[root@tony data]# mkdir -p grandparent/parent/son #創建三級目錄
[root@tony data]# tree #查看目錄樹結構
.
├── grandparent
│ ├── parent
│ │ ├── son
│ │ │ └── test.txt
│ │ └── test.txt
│ └── test.txt
└── teach.txt
[root@tony data]# echo "This is Linux Operator System" >grandparent/test.txt #創建測試數據
[root@tony data]# echo "This is Linux Operator System" >grandparent/parent/test.txt
[root@tony data]# echo "This is Linux Operator System" >grandparent/parent/son/test.txt
[root@tony data]# find ./ -type f -name "test.txt"|xargs sed -i 's#Linux#Unix#g' #將匹配的文件內容字符串轉換為Unix
[root@tony data]# cat grandparent/test.txt #查看修改結果
This is Unix Operator System
獲取指定區間行數的內容
[root@tony data]# sed -n '2,5p' teach.txt
Program language
Java
C
C++
3 awk命令
awk是一種程序設計語言,允許創建簡短的程序,這些程序讀取輸入文件,為數據排序,處理數據,對輸入執行計算以及生成報表。其格式如下
awk ‘{pattern +action}’ {fileNames}
選項
說明
-F
指定分割的內容
內置變量
NR: 表示行號
使用案例
使用awk實現獲取指定區間的內容
[root@tony data]# awk '{if(NR<5&&NR>=2)printf $1 "\n"}' teach.txt
Program
Java
C