##:文本处理工具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

如果要取出磁盘的利用率,我们则可以使用以下方法

[root@Centos7 ~]#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 只显示重复的