接下来我们一起来看一下再linux中怎么去对文本进行操作的

一、文本文件

既然要操作文本,所以我们要对文本有一个了解,那什么是文本文件呢。

文本文件是一种由若干行字符构成的计算机文件。文本文件存在于计算机文件系统中。通常,通过在文本文件最后一行后放置文件结束标志来。

文本文件通常有系统配置文件,网页,程序源代码等等。

二、文本文件的浏览

2.1、cat   

  2.2.1、cat的基本介绍

  1)命令格式:cat filename(s)

  2)命令说明:将文件的内容显示到屏幕上

  3)将文件内容进行重定向到其他文件或者设备中。例如:cat /etc/passwd > a.txt

  4)拓展

  1. 命令格式:cat /etc/passwd | awk -F: '{print $1 "\t" $6}' | sort > ~/userinfo
  2.  
  3.   命令说明:
  4.   awk:处理文字程序,以行为单位来处理文字
  5. -F指定分隔符
  6. 注意:-F和分隔符之间没有空格
  7. '{print }':打印语句的固定格式
  8. $ "\t" $
  9. $:分割后的第1个部分
  10. $:分割后的第6个部分
  11. \t:制表符
  12. \n:换行符
  13. \:续行符
  14. sort:排序 ASCII码进行排序
  15. a:
  16. A:

  2.2.2、举例

  cat可以同时显示多个文件到屏幕中

  1. cat /etc/passwd /etc/group

  将多个文件拼接成一个大的文件

  1. 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文件的倒数第五行到倒数第十行的内容

  1. tail - /etc/passwd | head -

2.5、sort

读取文件中的内容,按行排序。

读取管道中的内容,按行排序。

可以加选项“-u”,表示重复行(相同并且相邻则视为重复行)只显示一次。

举例:

提取系统中所有的用户名,按用户名(行)排序。

  1. cat /etc/passwd | awk -F: '{print $1}' | sort -u

2.6、uniq

清除文件或者管道中的重复行

注意:这里是指把文件中的重复行删除,只是我们查看的时候,把重复行给去掉了。

2.7、diff

比较并显示两个文件的不同之处

命令格式:diff [-u] filename1 filename2

  1. //file1.txt
  2. I need to buy apples.
  3. I need to run the laundry.
  4. I need to wash the dog.
  5. I need to get the car detailed.
  6.  
  7. //file2.txt
  8. I need to buy apples.
  9. I need to do the laundry.
  10. I need to wash the car.
  11. I need to get the dog detailed.
  12.  
  13. 我们使用diff比较他们的不同:
  14. diff file1.txt file2.txt
  15.  
  16. 输出如下结果:
  17. ,4c2,
  18. < I need to run the laundry.
  19. < I need to wash the dog.
  20. < I need to get the car detailed.
  21. ---
  22. > I need to do the laundry.
  23. > I need to wash the car.
  24. > 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退出录屏。

linux(六)之文本操作的更多相关文章

  1. linux下的文本操作之 文本查找——grep

    摘要:你有没有这样的应用场景:调试一个程序,出现debug的提示信息,现在你需要定位是哪个文件包含了这个debug信息,也就是说,你需要在一个目录下的多个文件(可能包含子目录)中查找某个字符串的位置: ...

  2. Linux命令-文件文本操作grep

    文件文本操作 grep 在文件中查找符合正则表达式条件的文本行 cut 截取文件中的特定字段 paste 附加字段 tr 字符转换或压缩 sort 调整文本行的顺序,使其符合特定准则 uniq 找出重 ...

  3. linux文本操作界面 vi面板如何复制一行

    linux文本操作界面 vi面板如何复制一行 1)把光标移动到要复制的行上2)按yy3)把光标移动到要复制的位置4)按p 在vi里如何复制一行中间的几个字符?如果你要从光标处开始复制 4 个字符,则先 ...

  4. Linux Bash文本操作之sed篇其二

    上一篇总结了sed的基础应用(Linux Bash文本操作之sed篇其一),内容实在有够多,这里再对稍微高级一些的用法做一个整理,以方便使用时查阅. 查看文本内容 示例1表示在第一到第四行匹配到的行后 ...

  5. Linux Bash文本操作之sed篇其一

    作为Linux系统中文本处理的强力工具之一,sed功能强大,用法多变,值得我们好好学习. sed是用于过滤和转换文本的流编辑器. 一般情况下sed把当前处理的行存储在临时缓冲区,按指定命令处理之后将缓 ...

  6. Linux学习之文本处理命令(五)

    ---恢复内容开始--- Linux 系统之文本处理命令 (一)基于关键字搜索 (二)基于列处理文本 (三)文本统计 (四)文本排序 (五)删除重复行 (六)文本比较 (七)处理文本内容 (八)搜索替 ...

  7. SLAM+语音机器人DIY系列:(一)Linux基础——3.Linux命令行基础操作

    摘要 由于机器人SLAM.自动导航.语音交互这一系列算法都在机器人操作系统ROS中有很好的支持,所以后续的章节中都会使用ROS来组织构建代码:而ROS又是安装在Linux发行版ubuntu系统之上的, ...

  8. Linux常用命令——文本编辑器Vim

    Linux常用命令--文本编辑器Vim Linux  Vim常用操作 插入命令 a 在光标所在字符后插入 A 在光标所在行尾插入 i 在光标所在字符前插入 I 在光标所在行首插入 o 在光标下插入新行 ...

  9. Shell命令之文本操作

    前言 在Linux中,文本处理操作是最常见的,应用非常广泛,如果能熟练掌握,可以大大提高开发效率. awk/sed/grep是文本操作领域的“三剑客”,学会了这3个命令就可以应对绝大多数文本处理场景. ...

  10. Linux下常用的操作

    Linux下常用的操作 文件定位 locate filename 有些版本的linux会出现 -bash: locate: command not found错误,不要慌,安装一下mlocate包就好 ...

随机推荐

  1. 【java】反射简单示例

    package 反射; public class Test反射 { public static void main(String[] args) { System.out.println(Runtim ...

  2. sqlserver 存储过程 游标实例

    if exists(select * from sysobjects where id = object_id(N'dbo.test_cursor') and type = 'P') drop PRO ...

  3. iis 10 ftp 被动模式配置

    第一步: 进入 Server Level 的FTP Firewall Support 第二步: 在 Data Channel Port Range 下配置 Passive mode 的端口号范围,注意 ...

  4. vue2 vue-rout

    vue 2.0的路由比起1.0简单了许多,分为以下几个步骤: 1.创建路由块和视图块: to里面是要切换的路径名称 <div id="app"> <div> ...

  5. .NET使用DAO.NET实体类模型操作数据库

    一.新建项目 打开vs2017,新建一个项目,命名为orm1 二.新建数据库 打开 SqlServer数据库,新建数据库 orm1,并新建表 student . 三.新建 ADO.NET 实体数据模型 ...

  6. qrc资源文件加载后,裸机环境下图片不显示

    问题描述:在qt开发环境下,使用qss进行界面美化工作,里面包含许多图片资源.最后项目决定把这些图片资源和代码一起打包.然后就把图片资源和qss文件一起编入qrc文件中进行编译.在本机开发环境下是没有 ...

  7. ExpandableListView的完美实现,JSON数据源,右边自定义图片

    转载请标明出处: http://www.cnblogs.com/dingxiansen/p/8194669.html 本文出自:丁先森-博客园 最近在项目中要使用ExpandableListView来 ...

  8. ASP.NET如何通过后台数据库提供的链接播放视频(不使用外置插件)

    1.后台视频数据库: 2.aspx中的关键代码: <asp:DataList ID="DataList2" runat="server" DataKeyF ...

  9. C# 判断网站是否能访问或者断链

    参考网站:http://www.cnblogs.com/junny/archive/2012/10/30/2745978.html public bool CheckUrlVisit(string u ...

  10. Django_调查问卷

    1.问卷的保存按钮 前端通过ajax把数据发过来后端处理数据,然后返回给前端2.对问卷做答 首先用户进行登录,验证 条件:1.只有本班的学生才能对问卷做答      2.已经参加过的不能再次访问   ...