liunx提供多个命令来操作文本:
cat , more, less, head, tail , cut、join、sed、awk
cat: Concatenate FILE(s), or standard input, to standard output.
cat:连接并显示文件所有内容
使用方式如下:
Usage: cat [OPTION] [FILE]...
OPTION常用有 , FILE可以有多个
-n 显示行号
-E show-ends
eg:
[root@sliver114 ~]# cat -E /etc/issue
CentOS release 5.8 (Final)$
Kernel \r on an \m$
$
从上案例可见,linux文本文件中行尾以$结束<------>window的文本文件以 \r\n结束
more和less都支持分屏显示文件:
分屏显示: 和cat是类似的,只不过增加了分屏显示效果,用法等同于man
more、less
more: 向后翻
less:
翻屏:
向后翻一屏:SPACE
向前翻一屏:b
向后翻一行:ENTER
向前翻一行:k
查找: eg: #man date下 输入/time 然后输入字母n 会将查到的time关键字一个个的向下翻
/KEYWORD: 自前向后
?KEYWORD: 自后向前
如果搜到多个同样关键词下:
n: 下一个
eg: less /etc/rc.d/rc.sysinit 用more能展示进度 less则不能 less支持关键词查询
head/tail:
# head -n 3 /etc/inittab
head:查看前n行 默认是10行
tail:查看后n行
-n
tail -f: 查看文件尾部,不退出,等待显示后续追加至此文件的新内容;
作用在于: 监控服务运行的Log文件时,使用此命令能实时监控 ctrl+c退出
eg:
# head -n 3 /etc/inittab
cut: 文本切分(仅仅是将目标文件内容提取显示,不会对目标文件内容做任何改动)
cut:
-d: 指定字段分隔符,默认是空格
-f: 指定要显示的字段
-f 1,3 显示第一个和第三个字段
-f 1-3 显示前第三个
eg:
[root@sliver114 ~]# cut -d: -f1 /etc/passwd 截取文件passwd的第一个字符
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
...
sort: 文本排序
文本排序:sort 默认按照asci表排序
-n:数值排序
-r: 降序
-t: 字段分隔符
-k: 以哪个字段为关键字进行排序
-u: 排序后相同的行只显示一次
-f: 排序时忽略字符大小写
eg: 以:作为分隔符,将第三个字符以数字方式排序
[root@sliver114 ~]# sort -t: -k3 -n /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
uniq :
linux中,如果两个行不相邻,即使是一模一样,也不认为是重复行。
uniq:
-c: 显示文件中行重复的次数
-d: 只显示重复的行
eg:
原文内容:
456
456
11
231
456
111
7980
[root@sliver114 ~]# uniq -c sort
2 456
1 11
1 231
1 456
1 111
1 7980
[root@sliver114 ~]# uniq -d sort
456
wc: 文本统计
文本统计:wc (word count) 统计有多少行 多少单词 多少字节
-l 只显示行数 line
-w 只显示单词数 word
-c 只显示字节数 bytes count
-m 字符数
-L 最长一行的字符数
eg:
[root@sliver114 ~]# wc /etc/fstab 默认展示:行数 单词数 字节数
7 42 532 /etc/fstab
tr: 转换或者删除字符
字符处理命令:tr —— 转换或删除字符 (是逐个字符处理的,不是单词匹配方式的 !!!)
tr [OPTION]... SET1 [SET2]
-d: 删除出现在字符集中的所有字符
[root@h2sliver114 ~]# tr ab AB 从左到右逐个字符替换,遇到匹配的单个字符就替换。
ab
AB
[root@h2sliver114 ~]# tr 'a-z' 'A-Z' < /etc/profile 将文件内容全部转成大写后输到控制台
# /ETC/PROFILE
[root@h2sliver114 ~]# tr -d ab 如下 输入abc 删除ab 得到c
abc
c