在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
cat命令:查看文本内容 cat [选项]... [文件]... -E 显示行结束符 -n 显示文本内容时显示行号 -A 显示所以控制符 -b 非空行编号 -s 压缩连续的空行成一行 [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 ##创建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 head命令 : head [OPTION]... [FILE]... -n 显示文件前n行,默认显示前10行 -c # 显示文件前#个字节内容 -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 实时查看,常用监控日志文件 -c # 显示后#字节 -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 ##不停地去读最新的内容,有实时监视的效果,用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 #-# :连续的多个字段, 例如1-6 混合使用:1-3,7 -c 按字符切割 --output-delimiter=STRING指定输出分隔符 显示文件前10行,以“:”作为分隔符打印第1和第7个字段并分隔符换成空格输出: [root@bogon ~]# head /etc/passwd |cut -d ":" -f1,7 --output-delimiter=" " ##查看系统用户使用的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命令:统计文件内容 -l 统计行数 -w 统计单词个数 -c 统计字节数 -m 只计数字符总数 -L 打印最长行的长度 [root@bogon ~]# cat /etc/passwd |wc -l ##统计文件的行数 22 [root@bogon ~]# echo "aaa bbb ccc" |wc -w ##统计输出的单词数量 3 [root@bogon ~]# echo "abcdef" |wc -m ##统计输出有多少个字节 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: 比较时不区分大小写 [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命令:比较两个文件之间的区别 -r 递归比较 -u 输出“统一的(unified ) patch 命令复制在其它文件中进行的改变(要谨慎使用!) -b 选项来自动备份改变了的文件 [root@bogon ~]# diff file1.txt file2.txt 8c8 ##表示第8行有区别 < 113.240.250.155 --- > 133.240.250.155 替换和删除字符: tr [OPTION]... SET1 [SET2] -c 或——complerment :取字符集的补集 -d 或——delete :删除所有属于第一字符集的字符; -s 或—squeeze-repeats :把连续重复的字符以单独一个字符表示 -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 统计匹配的行数 -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 ##查出使用率的最大百分比值的分区 /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文本处理工具及正则表达式集锦,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对极客世界网站的支持! |
请发表评论