cat命令:查看文本內容
cat [選項]... [文件]...
-E 顯示行結束符
-n 顯示文本內容時顯示行號
-A 顯示所以控制符
-b 非空行編號
-s 壓縮連續(xù)的空行成一行
[root@bogon ~]# cat -n /etc/issue > test.txt ##查看文件內容并顯示行號,重定向到test.txt文件中
[root@bogon ~]# cat test.txt
1 \S
2 Kernel \r on an \m
3
[root@bogon ~]# cat > file EOF ##創(chuàng)建file文件,輸入內容以EOF結束
> kernel \r on an \m
> EOF
[root@bogon ~]# cat file
kernel \r on an \m
more 分頁顯示
more [OPTIONS...] FILE...
less 分頁顯示,是man命令使用的分頁器
[root@bogon ~]# less /etc/httpd.conf
[root@bogon ~]# cat /etc/httpd.conf |more
head命令 :
head [OPTION]... [FILE]...
-n 顯示文件前n行,默認顯示前10行
-c # 顯示文件前#個字節(jié)內容
-q 不顯示包含給定文件名的文件頭
[root@bogon ~]# head -5 /etc/fstab ##顯示文件前5行
#
# /etc/fstab
# Created by anaconda on Mon May 1 04:49:06 2017
#
[root@bogon ~]# head -q -n 5 /etc/fstab /etc/issue ##顯示多個文件前5行,并且不顯示文件頭
#
# /etc/fstab
# Created by anaconda on Mon May 1 04:49:06 2017
#
\S
Kernel \r on an \m
tail命令:
tail [OPTION]... [FILE]...
-f 實時查看,常用監(jiān)控日志文件
-c # 顯示后#字節(jié)
-n # 顯示后#行,默認顯示行10行
[root@bogon ~]# tail -2 /etc/passwd ##顯示文件后2行
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
[root@bogon ~]# tail -f /var/log/messages ##不停地去讀最新的內容,有實時監(jiān)視的效果,用Ctrl+c來終止
May 2 02:46:26 localhost systemd: Configuration file /usr/lib/systemd/system/wpa_supplicant.service is marked executable. Please remove executable permission bits. Proceeding anyway. May 2 02:46:26 localhost yum[16325]: Installed: httpd-2.4.6-45.el7.centos.4.x86_64 May 2 03:01:01 localhost systemd: Started Session 10 of user root. May 2 03:01:01 localhost systemd: Starting Session 10 of user root. May 2 03:45:49 localhost systemd-logind: Removed session 4. May 2 03:46:20 localhost systemd: Started Session 11 of user root. May 2 03:46:20 localhost systemd-logind: New session 11 of user root. May 2 03:46:20 localhost systemd: Starting Session 11 of user root. May 2 04:01:01 localhost systemd: Started Session 12 of user root. May 2 04:01:01 localhost systemd: Starting Session 12 of user root.
cut命令:
cut [OPTION]... [FILE]...
-d 指明分隔符,默認tab
-f 第# 個字段
#,#[,#] :離散的多個字段,例如1,3,6
#-# :連續(xù)的多個字段, 例如1-6
混合使用:1-3,7
-c 按字符切割
--output-delimiter=STRING指定輸出分隔符
顯示文件前10行,以“:”作為分隔符打印第1和第7個字段并分隔符換成空格輸出:
[root@bogon ~]# head /etc/passwd |cut -d ":" -f1,7 --output-delimiter=" " ##查看系統(tǒng)用戶使用的shell
root /bin/bash
bin /sbin/nologin
daemon /sbin/nologin
adm /sbin/nologin
lp /sbin/nologin
sync /bin/sync
shutdown /sbin/shutdown
halt /sbin/halt
mail /sbin/nologin
operator /sbin/nologin
[root@bogon ~]# ip addr |tail -4 |head -1 |cut -d "/" -f1 |cut -d " " -f6 ##獲取ip地址
192.168.25.102
paste命令:
paste [OPTION]... [FILE]...
-d 分隔符: 指定分隔符,默認用TAB
-s 所以行合并成一行顯示
[root@bogon ~]# paste /etc/resolv.conf /etc/issue ##合并輸出兩個文件的內容
# Generated by NetworkManager \S
nameserver 202.106.46.151 Kernel \r on an \m
nameserver 202.106.195.68
[root@bogon ~]# paste -s /etc/issue ##對輸出的內容獨立占一行
\S Kernel \r on an \m
wc命令:統(tǒng)計文件內容
-l 統(tǒng)計行數
-w 統(tǒng)計單詞個數
-c 統(tǒng)計字節(jié)數
-m 只計數字符總數
-L 打印最長行的長度
[root@bogon ~]# cat /etc/passwd |wc -l ##統(tǒng)計文件的行數
22
[root@bogon ~]# echo "aaa bbb ccc" |wc -w ##統(tǒng)計輸出的單詞數量
3
[root@bogon ~]# echo "abcdef" |wc -m ##統(tǒng)計輸出有多少個字節(jié)
7
文本排序:sort [options] file(s)
-r 逆序排序
-n 根據字符串數值進行比較
-f 忽略字符大小寫
-u 去重。配合-c,嚴格校驗排序;不配合-c,則只輸出一次排序結果
-t 使用指定的分隔符代替非空格到空格的轉換
-k 1 在位置1 開始一個key,在位置2 終止(默認為行尾)
[root@bogon ~]# head /etc/passwd |sort -t ":" -k 3nr ##以“:”分割對第三個字段數值進行倒序排列
operator:x:11:0:operator:/root:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
sync:x:5:0:sync:/sbin:/bin/sync
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
[root@bogon ~]# cat /etc/passwd |sort -t':' -k 7 -u ##以“:”分割對第7個字段排序,去重
root:x:0:0:root:/root:/bin/bash
sync:x:5:0:sync:/sbin:/bin/sync
halt:x:7:0:halt:/sbin:/sbin/halt
bin:x:1:1:bin:/bin:/sbin/nologin
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
uniq 命令:從輸入中刪除重復的前后相接的行
uniq [OPTION]... [FILE]...
-c: 顯示每行重復出現的次數;
-d: 僅顯示重復過的行;
-u: 僅顯示唯一的行;
-i: 比較時不區(qū)分大小寫
[root@bogon ~]# uniq -c ip.txt ##顯示重復行出現的次數,相鄰行且完全一樣為重復
3 101.200.78.99
1 103.41.52.94
2 106.185.47.161
1 101.200.78.99
2 113.240.250.155
1 13.0.782.215
1 185.130.5.231
文件比較:
diff命令:比較兩個文件之間的區(qū)別
-r 遞歸比較
-u 輸出“統(tǒng)一的(unified )
patch 命令復制在其它文件中進行的改變(要謹慎使用?。?/p>
-b 選項來自動備份改變了的文件
[root@bogon ~]# diff file1.txt file2.txt
8c8 ##表示第8行有區(qū)別
113.240.250.155
---
> 133.240.250.155
替換和刪除字符:
tr [OPTION]... SET1 [SET2]
-c 或——complerment :取字符集的補集
-d 或——delete :刪除所有屬于第一字符集的字符;
-s 或—squeeze-repeats :把連續(xù)重復的字符以單獨一個字符表示
-t 或--truncate-set1 :先刪除第一字符集較第二字符集多出的字符
[root@bogon ~]# tr -s '\n' file1.txt ##刪除空行
103.41.52.94
106.185.47.161
\S
Kernel \r on an \m
106.185.47.161
[root@bogon ~]# tr A-Z a-z file1.txt ##把大寫字母換成小寫
103.41.52.94
106.185.47.161
\s
kernel \r on an \m
106.185.47.161
grep命令:過濾文本內容
grep [OPTIONS] PATTERN [FILE...]
-i 查找時忽略大小寫
-v 取反
-n 顯示匹配的行號
-c 統(tǒng)計匹配的行數
-o 僅顯示匹配到的字符串;
-q 靜默模式,不輸出任何信息
-A # after, 后#行 行
-B # before, 前#行 行
-C # context, 前后各#行 行
-e 實現多個選項間的邏輯or 關系
-w 整行匹配整個單詞
-E 使用擴展正則表達式
正則表達式:
. 匹配任意單個字符;
[] 匹配指定范圍內的任意單個字符
[^] 匹配指定范圍外的任意單個字符
* 匹配前面的字符任意次,包括0次 次貪婪模式:盡可能長的匹配
.* 任意長度的任意字符
\&; 匹配其前面的字符0 或1次
\+ 匹配其前面的字符至少1次
\{m\} 匹配前面的字符m次
\{m,n\} 匹配前面的字符至少m 次,至多n次
\{,n\} 匹配前面的字符至多n次 次
\{m,\} 匹配前面的字符至少m次
^ 行首錨定,用于模式的最左側
$ 行尾錨定,用于模式的最右側
^PATTERN$ 用于模式匹配整行
^$ 空行
^[[:space:]]*$ 空白行
\ 或 或 \b 詞首錨定,用于單詞模式的左側
\&; 或 或 \b 詞尾錨定;用于單詞模式的右側
\PATTERN\&; 匹配整個單詞
\(\) 將一個或多個字符捆綁在一起,當作一個整體進行處理
[:alpha:] 所有字母,包括大、小寫
[:alnum:] 所有字母和數字
[:upper:] 所有大寫字母
[:lower:] 所有小寫字母
[:digit:] 所有數字
[:punct:] 所有標點符號
[:space:] 空格和Tab
擴展正則表達式:
. 任意單個字符
[] 指定范圍的字符
[^] 不在指定范圍的字符
* 匹配前面字符任意次
? 0 或1次 次
+ 1 次或多次
{m} 匹配m次
{m,n} 至少m ,至多n次
^ 行首
$ 行尾
\, \b 語首
\&;, \b 語尾
分組 ()
后向引用:\1, \2, ...
或者:a|b
C|cat: C 或cat
(C|c)at:Cat 或cat
[root@bogon ~]# grep '^\(root\|apache\)' test.txt ##過濾以root或apache開頭的行
root:x:0:0:root:/root:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
[root@bogon ~]# grep -R /sbin/nologin * ##遞歸從所以文件中查詢匹配的內容
test.txt:bin:x:1:1:bin:/bin:/sbin/nologin
test.txt:daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@bogon ~]# ip addr |grep "dynamic" |tr -s " " |cut -d " " -f3 |cut -d "/" -f1 ##過濾ip地址
192.168.25.102
[root@bogon ~]# ip addr |grep -E -o "([0-9]{1,3}[\.]){1,3}[0-9]{1,3}"
127.0.0.1
192.168.25.102
192.168.25.255
[root@bogon ~]# df -Th |tr -s " " |sort -k 6nr |head -1 ##查出使用率的最大百分比值的分區(qū)
/dev/sda1 xfs 497M 125M 373M 25% /boot
[root@bogon ~]# cat /etc/passwd |sort -t ':' -k 3n |tail -1 |cut -d ":" -f1,3,7
systemd-bus-proxy:999:/sbin/nologin ##找出uid最大值的用戶,并顯示用戶名、UID、及shell類型
以上所述是小編給大家介紹的linux文本處理工具及正則表達式集錦,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
您可能感興趣的文章:- 詳解正則表達式及Linux三大文本處理工具
- Linux中文本處理工具之sort命令詳解
- Linux中文本處理工具之cut命令詳解
- Linux文本處理工具使用詳解