一、文件浏览

cat      查看文件内容
more 以翻页形式查看文件内容(只能向下翻页)
less 以翻页形式查看文件内容(可以上下翻页)
head 查看文件的头几行(默认10行)
tail 查看文件的尾几行(默认10行)

  

二、正则匹配打印行

命令 grep 用来全局匹配正则表达式并打印所在行:

grep 'mingc' /etc/passwd        在该文件中匹配mingc的用户信息并打印所在行
find / -user mingc | grep ".*\.png$" 查找mingc的所有png文件(管道操作)

常用参数:

-i       搜索时忽略大小写
-n 显示结果所在行数
-v 输出不匹配该正则的行(类似于一个取反操作)
-An 在输出的时候包含结果所在行之后的指定n行
-Bn 在输出的时候包含结果所在行之前的指定n行

  

三、文本切割打印字段

命令 cut 常用来切割文本行、打印某些字段:

cut -d:fl /etc/passwd    打印passwd文件中冒号分割的第1个字段(用户名)(列出来多行的用户名)
grep mingc /etc/passwd | cut -d: -f3 打印mingc的用户信息汇总冒号分割的第3个字段(uid)

常用参数:

-d       指定分割字符(默认Tab)
-f 显示特定序号的字段(从1开始)
-c 显示特定范围字符(从第几个到第几个)

示例:

grep mingc /etc/passwd | cut -d: -f3     打印mingc的用户信息中冒号分割的第3个字段(uid)
grep mingc /etc/passwd | cut -d: -f6,7 打印mingc的用户主目录和登录Shell grep mingc /etc/passwd | cut -c1-5 打印mingc的用户信息中第1~5个字符
grep mingc /etc/passwd | cut -c1- 打印mingc的用户信息中第1个字符之后的所有字符
grep mingc /etc/passwd | cut -c-5 打印mingc的用户信息中第5个字符之前的所有字符

  

四、文本统计

命令 wc 用于统计文件的行数、单词数、字符数等:

wc test.md

不带参数时默认输出一行,字段格式为:

行数 单词数 字符数 文件名

常用参数:

-l       只统计行数
-w 只统计单词数
-c 只统计字节数
-m 只统计字符数

  

五、文本排序

命令 sort 用于对文件内容进行排序(也可以对STDIN进行排序):

sort filename

常用参数:

-r        逆向(倒序)排序
-n 基于数字排序
-f 忽略大小写
-u 去重复(剔除重复行)
-t<分割符> 指定分隔符(一般配合-k参数使用,单纯分割毫无意义)
-k n 当指定分割符时,按照第n个字段进行排序(序号n从1开始)

-r、-n、-t、-k 参数可以配合使用:

上图中,把 test.md 文件内容的每行按照冒号分割、基于数字对第3个字段进行逆向排序。

六、剔除重复行

命令 sort -u 可以剔除文件内容重复行,但副作用是进行了排序。

命令 uniq 可以剔除文件内容(相邻的)重复行:

七、文本比较

命令 diff 用来比较两个文件的区别:

diff test1.md test2.md

常用参数:

-i       忽略大小写
-b 忽略空格字符
-u 统一显示比较信息(一般用来生成patch文件)

示例:

diff -u old.md new.md > update.patch   把文件的更新信息生成到补丁文件

八、拼写检查

命令 aspell 用来显示检查英文拼写:

aspell check filename
aspell list < filename

(CentOS 6.9 64位系统里似乎没有这个命令,也不常用,不详述)

九、字符转换

命令 tr 用于从标准输入对字符进行转换处理。如果处理来自文件的输入,需要重定向。

删除关键字:

tr -d 'keyword' < filename

转换大小写:

tr 'a-z' 'A-Z' < filename

十、流式编辑——搜索替换

sed 命令是一种可以配合正则表达式使用的流式编辑工具。处理文件流时,把当前处理的行存储在临时缓冲区,称“模式空间”(pattern space),然后处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有发生改变,除非使用重定向存储输出。sed 命令主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。

语法:

sed [options] 'command' file(s)
sed [options] -f scriptfile file(s)

常用参数 options:

-e<script>   指定一个script来处理文本
-f<script> 指定一个script来处理文本
-n 仅显示处理后的结果

常用命令 command:

d    删除行
D 删除第一行
s 替换指定字符
h 拷贝内容到缓冲区
H 追加内容到缓冲区
g 获取缓冲区的内容,替换当前文本
G 获取缓冲区的内容,追加到当前文本后面
p 打印行
P 打印第一行
q 退出sed

示例:

sed 's/linux/unix/g' filename      s表示搜索替换,linux替换为unix,g表示全局替换,filename目标文件
sed 'l,50s/linux/unix/g' filename 1到50行进行全局替换
sed -e 's/linux/unix/g' -e 's/ming/mingc/g' filename -e参数替换多个
sed -f script filename 指定一个script来处理文件

相关链接:sed 命令 - Linux 命令大全

Linux 入门记录:十七、Linux 命令行文本/文件处理工具的更多相关文章

  1. Linux入门基础 #10:命令行文本处理工具

    本文出自   http://blog.csdn.net/shuangde800 ------------------------------------------------------------ ...

  2. Linux 入门记录:二十、Linux 包管理工具 YUM

    一.YUM(Yellowdog Updater, Modified) 1. YUM 简介 RPM 软件包形式管理软件虽然方便,但是需要手动解决软件包的依赖问题.很多时候安装一个软件首先需要安装 1 个 ...

  3. Linux 入门记录:十六、Linux 多命令协作:管道及重定向

    一.多命令协作 在 Linux 系统当中,大多数命令都很简单,很少出现复杂功能的命令,每个命令往往只实现一个或多个很简单的功能.通过将不同功能的命令组合一起使用,可以实现某个复杂功能的. Linux ...

  4. Linux 入门记录:四、Linux 系统常用命令

    一.日期时间 命令 date 查看.设置当前系统时间: date -u 格林威治时间 date %Y-%m-%d 显示格式化的时间 date -s "23:00" 使用 -s 参数 ...

  5. Linux 入门记录:十八、Linux 系统启动流程 + 单用户修改 root 密码 + GRUB 加密

    一.系统启动流程 一般来说,Linux 系统的启动流程是这样的: 1. 开机之后,位于计算机主板 ROM 芯片上的 BIOS 被最先读取,在进行硬件和内存的校验以及 CPU 的自检没有异常后, BIO ...

  6. Linux 入门记录:六、Linux 硬件相关概念(硬盘、磁盘、磁道、柱面、磁头、扇区、分区、MBR、GPT)

    一.硬盘 硬盘的功能相当简单但很重要,它负责记录系统所需要的各种数据.硬盘记录数据有两个方面,一个是硬件方面的存储原理和结构,另外一方面则是软件方面的数据和文件系统.硬盘的主要行为就是数据的存放和取出 ...

  7. Linux 入门记录:二、Linux 文件系统基本结构

    一.树状目录结构 Linux 文件系统是一个倒置的单根树状结构.文件系统的根为"/":文件名严格区分大小写:路径使用"/"分割(Windows 中使用" ...

  8. Linux入门培训教程 linux下拷贝cp删除rm移动mv命令参数以及说明

    拷贝移动删除在windows中看起来这么简单,但linux经常使用的文字界面,所以对于linux系统 下拷贝cp删除 rm 移动mv命令参数就不得不需要了解和学习了 cp 该命令的功能是将给出的文件或 ...

  9. Linux 入门记录:三、Linux 文件基本操作管理

    一.复制文件.目录 使用 cp 命令复制文件或目录: $ cp 源文件(夹)目标文件(夹) 常用参数: -r 递归复制整个目录树 -v 显示复制过程的详细信息 二.移动.重命名文件或目录 通过 mv  ...

随机推荐

  1. 状态压缩---UVA6625 - Diagrams & Tableaux

    比赛的时候刷出来的第一个状态DP.(期间有点没有把握是状态DP呢.) 题意:题意还是简单的.K行的方格.之后输入L1~LK 代表每一行方格数.在这些往左紧挨的方格子里填上1~N的数字. 其中右边格子的 ...

  2. 【题解】HNOI2018转盘

    何学长口中所说的‘一眼题’……然而实际上出出来我大HN全省也只有一个人A…… 首先我们需要发现一个性质:我们永远可以在最后一圈去标记所有的物品.倘若我们反复转圈,那么这完全是可以省下来的.所以我们破环 ...

  3. BZOJ1058:[ZJOI2007]报表统计——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=1058 https://www.luogu.org/problemnew/show/P1110#su ...

  4. Vue语法笔记

    Vue.js 的核心是一个允许采用简洁的模板语法来声明式的将数据渲染进 DOM: 事件监听:v-on 指令绑定一个事件监听器  缩写[@]   v-on:click 用户输入,绑定数据:v-model ...

  5. noip模拟赛 保留道路

    [问题描述] 很久很久以前有一个国家,这个国家有N个城市,城市由1,2,3,…,N标号,城市间有M条双向道路,每条道路都有两个属性g和s,两个城市间可能有多条道路,并且可能存在将某一城市与其自身连接起 ...

  6. 开发系统级应用不被Kill

    一.设置方法 (1) 在AndroidManifest中application根节点下,添加如下代码: android:persistent="true" (2) 将应用程序pus ...

  7. HDU1298 字典树+dfs

    T9 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submissi ...

  8. Web Audio API之手把手教你用web api处理声音信号:可视化音乐demo

    1.Web Audio API 介绍 Web Audio API 提供了在Web上控制音频的一个非常有效通用的系统 ,这些通用系统通俗的讲就是我们可以利用Web Audio API提供的各种方法操作各 ...

  9. beego入门小坑

    刚接触beego,按照官网的文档操作,始终发现在orm操作数据的时候提示表不存在,数据库连接设置都没问题 "0 Error 1146: Table 'beego.archives' does ...

  10. JS鼠标滚轮事件解析

    一.不同浏览器的鼠标滚轮事件 首先,不同的浏览器有不同的滚轮事件.主要是有两种,onmousewheel(IE/Opera/Chrome支持,firefox不支持)和DOMMouseScroll(只有 ...