linux(六)之文本操作
接下来我们一起来看一下再linux中怎么去对文本进行操作的
一、文本文件
既然要操作文本,所以我们要对文本有一个了解,那什么是文本文件呢。
文本文件是一种由若干行字符构成的计算机文件。文本文件存在于计算机文件系统中。通常,通过在文本文件最后一行后放置文件结束标志来。
文本文件通常有系统配置文件,网页,程序源代码等等。
二、文本文件的浏览
2.1、cat
2.2.1、cat的基本介绍
1)命令格式:cat filename(s)
2)命令说明:将文件的内容显示到屏幕上
3)将文件内容进行重定向到其他文件或者设备中。例如:cat /etc/passwd > a.txt
4)拓展
命令格式:cat /etc/passwd | awk -F: '{print $1 "\t" $6}' | sort > ~/userinfo 命令说明: awk:处理文字程序,以行为单位来处理文字 -F指定分隔符 注意:-F和分隔符之间没有空格 '{print }':打印语句的固定格式 $1 "\t" $6 $1:分割后的第1个部分 $6:分割后的第6个部分 \t:制表符 \n:换行符 \:续行符 sort:排序 ASCII码进行排序 a:97 A:65
2.2.2、举例
cat可以同时显示多个文件到屏幕中
cat /etc/passwd /etc/group
将多个文件拼接成一个大的文件
cat /etc/passwd /etc/group > cat.txt
2.2.3、清空文件的方法
1)cat /dev/null > cat.txt
/dev/null :unix中的黑洞文件。放不进去东西,拿不出来东西。
作用:用来清空文件
2)> cat.txt
: 代表空操作
2.2、more
命令格式:more filename(s)
命令说明:显示文件内容到屏幕上,但是一屏内容满了之后会暂停下来。此时可以通过其他功能键进行查看。
2.3、head
命令格式:head [-n] filename(s)
命令说明:显示某个文件的前n行,如果没有选项-n(n是一个具体的数值),则默认显示前10行。
2.4、tail命令
具有和head命令相类似的功能,不同的是从显示某个文件尾部的行。
举例:
显示/etc/passwd文件的倒数第五行到倒数第十行的内容
tail -10 /etc/passwd | head -5
2.5、sort
读取文件中的内容,按行排序。
读取管道中的内容,按行排序。
可以加选项“-u”,表示重复行(相同并且相邻则视为重复行)只显示一次。
举例:
提取系统中所有的用户名,按用户名(行)排序。
cat /etc/passwd | awk -F: '{print $1}' | sort -u
2.6、uniq
清除文件或者管道中的重复行
注意:这里是指把文件中的重复行删除,只是我们查看的时候,把重复行给去掉了。
2.7、diff
比较并显示两个文件的不同之处
命令格式:diff [-u] filename1 filename2
//file1.txt I need to buy apples. I need to run the laundry. I need to wash the dog. I need to get the car detailed. //file2.txt I need to buy apples. I need to do the laundry. I need to wash the car. I need to get the dog detailed. 我们使用diff比较他们的不同: diff file1.txt file2.txt 输出如下结果: 2,4c2,4 < I need to run the laundry. < I need to wash the dog. < I need to get the car detailed. --- > I need to do the laundry. > I need to wash the car. > I need to get the dog detailed.
分析:
我们来说明一下该输出结果的含义,要明白diff比较结果的含义,我们必须牢记一点,diff描述两个文件不同的方式是告诉我们怎么样改变第一个文件之后与第二个文件匹配。我们看看上面的比较结果中的第一行 2,4c2,4 前面的数字2,4表示第一个文件中的行,中间有一个字母c表示需要在第一个文件上做的操作(a=add,c=change,d=delete),后面的数字2,4表示第二个文件中的行。
2,4c2,4 的含义是:第一个文件中的第[2,4]行(注意这是一个闭合区间,包括第2行和第4行)需要做出修改才能与第二个文件中的[2,4]行相匹配。
接下来的内容则告诉我们需要修改的地方,前面带 < 的部分表示左边文件的第[2,4]行的内容,而带> 的部分表示右边文件的第[2,4]行的内容,中间的 --- 则是两个文件内容的分隔符号。
2.8、echo
显示命令后面的内容到屏幕上
2.9、script
录屏命令,该命令会执行之后会将控制台上所有从该命令之后的输入和输入全部显示到指定的文件中。
可以加选项“-a”,表示追加到文件中。
录屏结束之后使用“exit”命令或者ctrl+d退出录屏。