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退出录屏。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Python爬虫与算法进阶

Python函数超时,用装饰器解决

我们在自定义一个函数后,会调用这个函数来完成我们想要的功能。 就拿爬虫来举例,你发送请求,服务器给你响应,但是有可能服务器没有给你任何数据,无论是他识别了爬虫、...

39720
来自专栏java思维导图

【一分钟知识】进程与线程,Thread的sleep与wait

java思维导图 xmind导图配合精美文章,可视化学习,让java不再难懂。 进程与线程 进程 是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是操...

37790
来自专栏python3

python3--队列Queue,管道Pipe,进程之间的数据共享,进程池Pool,回调函数callback

既打印了主进程put的值,也打印了子进程put的值,在进程中使用队列可以完成双向通信

66410
来自专栏腾讯NEXT学位

深入理解 ES6 模块机制

32760
来自专栏web前端教室

vue.js的computed计算属性,表达式的“js另存为”

简单的讲,vue的模板是基于html的,就是html里加模板语法,所以模板里的js注定不能太复杂。如果业务逻辑很复杂,就不能放在模板里了,否则这模板就成了一个业...

22260
来自专栏Java帮帮-微信公众号-技术文章全总结

request;response 对象

response ? 1. response简介 response的类型为HttpServletResponse,它是Servlet的service()方法的参...

38570
来自专栏Laoqi's Linux运维专列

python3–文件操作

521100
来自专栏数据结构与算法

22:紧急措施

22:紧急措施 总时间限制: 1000ms 内存限制: 65536kB描述 近日,一些热门网站遭受黑客入侵,这些网站的账号、密码及email的数据惨遭泄露。你...

39480
来自专栏小狼的世界

Python3.6学习笔记(四)

程序运行中,可能会遇到BUG、用户输入异常数据以及其它环境的异常,这些都需要程序猿进行处理。Python提供了一套内置的异常处理机制,供程序猿使用,同时PDB提...

17940
来自专栏程序员同行者

django基础之二

14440

扫码关注云+社区

领取腾讯云代金券