Linux:文件读取指令
- cat指令
- more指令
- less指令
- head指令 & tail指令
- grep指令
cat指令
cat
指令用于查看目标文件的内容。
语法:cat [选项][文件]
比如直接使用cat
读取一个文件:
可以看到,其直接在指令的下方,输出了test.txt
内部的内容。
现在我们再学习一些cat
的选项:
-b
:对所有非空行输出编号
-n
:对所有行输出编号
-s
:当有多行连续的空行时,压缩为一行空行
与cat
还有一个相对的只tac
,通过名字可以看出来,其就是cat
翻转后的字符串。因此这个指令的功能就是:反向输出文件内容。
more指令
假设我们现在有一个一万行的文件big.txt
,现在我们用cat
输出这个文件试试看:
可以看到,虽然cat
成功输出了文件,但是其造成了刷屏,最后咱啥也看不清楚。
对于这种大型文件,我们就需要more
这样的指令,来一点一点翻阅。
语法:more [选项][文件]
使用more
指令,一次只会输出到刚好占满屏幕,比如对刚刚的文件使用more big.txt
:
最后只输出了27行数据,因为屏幕最多只能承载27行数据。
此时我们可以:
- 使用
Enter
键,向下一行一行翻阅 - 使用
space
空格键,向下一页一页翻阅 - 输入
/xxx
,快速跳转到带有xxx
内容的行
比如输入/1024
:
最后我们的页面中,就跳转到了带有1024
内容附近的行。
我们想要退出阅读时:
q
:退出more
less指令
less
也是对文件或其它输出进行分页显示的工具,应该说是Linux正统查看文件内容的工具,功能极其强大。Less
的用法比起 more
更加的有弹性。
在 more
的时候,我们并没有办法向前面翻, 只能往后面看。但若使用了 less
时,就可以使用 [pageup]
,[pagedown]
等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容。除此之外,在 less
里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
语法:less [选项][文件]
直接对big.txt
使用less big.txt
:
/xxx
:向下搜索带有xxx
的内容
?xxx
:向上搜索带有xxx
的内容
q
:退出
这里就不展示以上三个功能了。
接下来我们再看两个选项:
-i
:搜索时忽略大小写
当我们直接打开文件时,进行搜索是区分大小写的,比如输入/linux
进行搜索:
可以看到,我们搜索失败了,虽然字符串中有Linux
,但是由于L
是大写的,其无法搜索到。
我们再以-i
打开文件,然后输入/linux
进行搜索:
可以看到,其把大写的单词也标识了出来。
head指令 & tail指令
head
与 tail
就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head
用来显示档案的开头至标准输出中,而 tail
想当然就是看档案的结尾
语法:
head [参数][文件]
tail [参数][文件]
直接使用head
时,默认输出前10行:
直接使用tail
时,默认输出后10行:
选项:-n
:输出前/后n行
比如用head
输出前20行:
用tail
输出后15行:
grep指令
grep
指令用于在文件中查找字符串,输出找到的行。
语法:grep [选项] 字符串 文件
比如在刚刚的big.txt
中搜索1024
,grep 1024 big.txt
:
可以看到,其输出了所有含有1024
的行,并把目标字符串额外用颜色区分开了。
常用选项:
-i
:忽略大小写不同
-n
:输出行号
-v
:反向选择,即输出不包含字符串的行
对big.txt
输入grep -v 9 big.txt
:
此时所有带有9
的行都没有输出,所以最后从88888
直接跳到了100000
。