Linux的文本处理工具
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux的文本处理工具相关的知识,希望对你有一定的参考价值。
文件查看方法:
cat -n 显示加行号,空行也加行号
-b 显示加行号,但是空行不加行号
-E 会显示出换行信息
-A 会显示tap键以及换行位置 "$"换行的意思 "^I"是tap键的意思
-s 压缩相邻的空行
tac "文件名" 行的反向显示
rev 列的反向显示,默认是读取键盘输入,可将标准输入重定向
nl "文件名" 加行号,空行不加行号 等同于 cat -b
more 方便查看行数过多的文件,空格向下翻,b是向上翻
-d 加上说明提示
less 同more,可以上下翻页(PgUp,PgDn),回车是换行,相对来说比较好用"/"可以搜索,q退出,都可以配合命令使用
head [option]...[file] 默认显示文件前面的10行
-n "数字" or -"数字" 显示指定前面几行数据
-c"数字" 打印前几个字节
-q 不打印文件的头部信息
生成指定位数的随机口令:
openssl rand -base64 30 | head -c30
cat /dev/urandom | tr -dc ‘[:alnum:]_‘ | head -c20
tail [option]...[file]默认显示文件的后10行
-n "数字" or -"数字" 显示指定后几行
-f 跟踪文件的最后几行更新,在文件后面跟上"&"符号可以后台运行不占用当前终端,如果跟踪只查看最后一行可以跟上-n0
-F 被跟踪文件如果在监控过程中被删除,加上此选项会提示文件被删除
tailf类似tail -f相比较来说性能较好,当文件不发生变化的时候,不会访问文件
cut:[option]..[file] 从文件中取出特定的列 默认以tap键做分隔符
-d 指定文件分隔符 后面一般跟上分隔符,然后再跟上"-f[数字]"显示分割后的第几列
--output-delimiter= 自定义文件分隔符
如果要取多个列则可以用这种格式 : cut -d: -f1-3,7 /etc/passwd 取出/etc/passwd中第一列到第二列以及第七列取出
如果文件中包含一个别的列的不存在的符号,则可以使用单独的符号作为分隔符,使用tr命令替换
比如df -H
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 53G 3.5G 47G 7% /
devtmpfs 549M 0 549M 0% /dev
tmpfs 564M 0 564M 0% /dev/shm
tmpfs 564M 8.2M 556M 2% /run
tmpfs 564M 0 564M 0% /sys/fs/cgroup
/dev/sda1 1.1G 134M 819M 15% /boot
/dev/sda3 43G 51M 40G 1% /app
tmpfs 113M 13k 113M 1% /run/user/42
tmpfs 113M 0 113M 0% /run/user/0
如果要取出磁盘的利用率,我们则可以使用以下方法
[[email protected] ~]#df -H | grep /dev/sd | tr -s " " % | cut -d% -f5
df -H 方便人类查看的格式显示
grep /dev/sd 过滤带有/dev/sd的行
tr -s " " % 将空格压缩并且替换为百分号
cut -d% -f5 将%作为文件分隔符,取第5列
当列特别齐的时候可以数字符数
-c 数字符数
df -H | cut -c35-36
练习:
将Centos6中eth0的IP地址取出
ifconfig eth0 | grep "inet addr" | tr -s " " : | cut -d: -f4
将Centos7中ens33的IP地址取出
ifconfig ens33 | grep "netmask" | tr -s " " : | cut -d: -f3
paste -d"自定义分隔符(只能是单字符为分隔符)"
作用:将两个文件横向合并,第一行和第一行,第二行和第二行,默认以"^Itap键"作为分隔符
-s "第一行放第一个文件的所有行" "第二行放第二个文件中的所有行"
文本数据统计工作:
wc:统计文件的行数,单词数,字节数;可以与命令组合使用
-l 统计行数
-w 统计单词数
-c 统计字节数
-m 统计字符数
-L 文件中最长行的长度
sort 排序;一般 -t -k -n | -rn 都是连在一起使用的,而如果要按照字母顺序排,则不用加参数
-t 指定分隔符
-k 对第几列进行排序
-n 按照数字排序
-rn 倒序按照数字排序
-u 将挨在一起的字符去重
uniq:相邻的重复行压缩成一个
-c 显示出来几个被合并成了一个
-u 只显示不重复的
-d 只显示重复的
本文出自 “Linux技术积累总结” 博客,转载请与作者联系!
以上是关于Linux的文本处理工具的主要内容,如果未能解决你的问题,请参考以下文章