rhcsa第四次作业#文件内容的浏览查看
文章目录
前言
因为在Linux系统中所有的内容都是以文件的形式存在的,所以对文件操作是非常实用的。这些命令均可使用管道符
一、查看文件内容
cat命令
查看文件内容
cat -n 对输出内容中的所有行标注行号。
cat -b 对输出内容中的非空行标注行号。
head命令
默认查看文件前十行内容
head -num 指定需要显示文件num行的内容。
tail命令
默认查看文件后十行内容
tail -num 指定需要显示文件num行的内容。
tail -f 使tail不停地去读取和显示文件最新的内容, 这样有实时监视的效果。
tail命令更多的用于查看系统日志文件,按 Ctrl+C 键终止显示和跟踪。
more命令
分页查看文件内容,按Enter键向下逐行滚动
按空格键向下翻一屏,按b键向上翻一屏
文件末尾时more会自动退出
more -c 从顶部清屏然后显示文件内容。
less命令
分页查看文件内容,按Enter键向下逐行滚动
按空格键向下翻一屏,按b键向上翻一屏
按q键退出
less -c 从顶部清屏然后显示文件内容。
less -N 其作用是在每行前添加输出行号。
grep命令
在指定的普通文件中查找并显示含有指定字符串的行
grep [选项] 关键字符串 文件
grep -c 仅显示找到的行数
grep -i 忽略大小写
grep -n 显示行号
grep -d 查找目录必须使用
grep -v 反向选择——仅列出没有“关键词”的行
grep -A :-A 2 搜索时显示匹配到的那一行以及下2行
grep -B :-B 2 搜索时显示匹配到的那一行以及上2行
grep -C :-C 2 搜索时显示匹配到的那一行以及上下2行
使用特殊字符匹配
匹配模式 | 说明 |
---|---|
grep h 文件名 | 查找文件里有字符h的行 |
grep ^[q] 文件名 | 匹配以q开始的行 |
grep ^[qf] 文件名 | 匹配以q或者f开头的行 |
grep ^[ ^qf ] 文件名 | 不匹配以q或者f开头的行 |
grep ^[0-9] 文件名 | 匹配以数字开头的行 |
grep \q$ 文件名 | 匹配以q结束的行 |
grep ^$ | 过滤空白行 |
grep -r h ./* | 如果要明确搜索当前目录中的子目录有h的行 |
grep -d skip h ./* | 忽略当前目录下的子目录下的普通文件 |
cut 命令
用于根据字段提取文本内容
cut [选项]文件名
cut -b 以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
cut -c 以字符为单位进行分割。
cut -d 自定义分隔符,默认为制表符。
cut -f 与-d一起使用,指定区域显示。
cut -n 取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的范围之内,该字符将被写出;否则,该字符将被排除
uniq命令
用于去除文本中连续的重复行
uniq [选项]文件名
uniq -c 行前显示行号
uniq -d 仅打印重复行,每组只显示一行
uniq -D 打印所有重复行
sort 命令
用于对文本内容进行排序显示,默认字母排序显示
sort [选项] 文件名
sort -f 忽略大小写
sort -b 忽略缩进和空格
sort -n 以数值排序
sort -r 反向排序
sort -u 去除重复行
sort -t 指定间隔符
sort -k 设置字段范围
tr命令
从标准输入读取数据,经过替换或者删除后,将结果输出到标准输出。
tr [选项]…SET1[SET2]
tr -c 反选设定字符。也就是符合 SET1 的部份不做处理,不符合的剩余部份才进行转换
tr -d 删除指令字符
tr -s 缩减连续重复的字符成指定的单个字符
示例:将文件中的字母全部转化成大写
[root@server ~]# cat file | tr a-z A-Z
clear 清屏但是不清内容
二、实操部分
1.文件查看
cat查看/etc/passwd文件内容,并显示行号
[root@server ~]# cat -n /etc/passwd
使用more/less查看/etc/passwd内容,且每页显示10行
[root@server ~]# more -10 /etc/passwd
[root@server ~]# less /etc/passwd
使用head/tail 分别查看文件前5行内容和后5行
[root@server ~]# head -5 /etc/passwd
[root@server ~]# tail -5 /etc/passwd
使用grep查看/etc/passwd中和root相关的内容
[root@server ~]# grep root /etc/passwd
2.cut命令使用
给定文件cut_data.txt且内容为:
[root@server data1]# cat cut_data.txt
No Name Score
1 zhang 20
2 li 80
3 wang 90
4 sun 60
使用默认定界符切割文件内容,且输出切割后的第一个字段
[root@server data1]# cut -f1 cut_data.txt
No
1
2
3
4
切割文件内容,且输出切割后的第一个字段和第三个字段
[root@server data1]# cut -d ' ' -f 1,3 cut_data.txt
No Score
1 20
2
3 90
4
按字节切割:输出切割的第一个字节到第10个字节的内容
[root@server data1]# cut -b 1-10 cut_data.txt
No Name
1 zhang
2 li 80
3 wang 9
4 sun 60
按字符切割:输出切割后的第一个字符和第5个字符的内容
[root@server data1]# cut -c 1,5 cut_data.txt
NN
1h
2i
3a
4u
按指定分界符去切割:内容如下,输出第一个字段和第三个字段内容
No|Name|Score
1|zhang|20
2|li80
3|wang|90
4|sun|60
[root@server data1]# cut -d'|' -f 1,3 cut_data.txt
No|Score
1|20
2|80
3|90
4|60
3.uniq命令使用
新建文件uniq_data.txt,文件内容为
[root@server data2]# cat uniq_data.txt
Welcome to Linux
Windows
Windows
Mac
Mac
Linux
使用uniq命令输出去重后的结果
[root@server data2]# uniq uniq_data.txt
Welcome to Linux
Windows
Mac
Linux
使用uniq命令只输出重复的行
[root@server data2]# uniq -d uniq_data.txt
Windows
Mac
使用uniq命令输出不重复的行
[root@server data2]# sort uniq_data.txt | uniq
Linux
Mac
Welcome to Linux
Windows
使用uniq命令统计重复次数
[root@server data2]# uniq -c uniq_data.txt
1 Welcome to Linux
2 Windows
2 Mac
1 Linux
4.sort命令使用
给定文件 num.txt,args.txt
文件内容:num.txt
[root@server data1]# cat num.txt
1
3
5
2
4
文件内容:args.txt
[root@server data1]# cat args.txt
test
args1
args2
args4
args4
args3
对num.txt进行排序,且将结果输出到sorted_num.txt中
[root@server data1]# sort num.txt >sorted_num.txt
[root@server data1]# cat sorted_num.txt
1
2
3
4
5
对args.txt进行排序,且将结果输出到sorted_args.txt中
[root@server data1]# sort args.txt >sorted_args.txt
[root@server data1]# cat sorted_args.txt
args1
args2
args3
args4
args4
test
对num.txt和args.txt进行排序,且将结果输出到sorted_merge.txt中
[root@server data1]# sort num.txt>sort args.txt>sorted_merge.txt
[root@server data1]# cat sorted_merge.txt
1
2
3
4
5
args1
args2
args3
args4
args4
test
对args.txt排序后去重输出
[root@server data1]# sort -u args.txt
args1
args2
args3
args4
test
合并sorted_args.txt和sorted_num.txt且输出
[root@server data1]# sort -m sorted_num.txt sorted_args.txt
1
2
3
4
5
args1
args2
args3
args4
args4
test
给定文件info.txt:按第二列作为key进行排序
[root@server data1]# cat info.txt
No Name Score
1 zhang 20
2 li 80
3 wang 90
4 sun 60
[root@server data1]# sort -k 2 info.txt
2 li 80
No Name Score
4 sun 60
3 wang 90
1 zhang 20
5.替换
将26个小写字母的后13个字母替换成大写字母
[root@server data1]# cat letter.txt
abcdefghijklmnopqrstuvwxyz
[root@server data1]# wc -L letter.txt
26 letter.txt
[root@server data1]# cat letter.txt|tr n-z N-Z
abcdefghijklmNOPQRSTUVWXYZ
将hello 123 world 456中的数字替换成空字符
[root@server data1]# cat tr.txt
hello 123 world 456
[root@server data1]# cat tr.txt|tr 1-9 ' '
hello world
将hello 123 world 456中字母和空格替换掉,只保留数字
[root@server data1]# cat tr.txt
hello 123 world 456
[root@server data1]# cat tr.txt | tr -d a-z|tr -d ' '
123456
总结
以上为查看浏览文件内容的命令以及部分方法,包括cat,head,tail,more,less,grep,cut ,uniq,sort ,tr等,以及使用实例。