Linux文本处理相关命令

一、文本处理命令

Linux sort命令用于将文本文件内容加以排序。

sort 可针对文本文件的内容,以行为单位来排序。

语法格式如下:

sort [参数]...[文件]

相关参数 参数说明 -n 依照数值的大小排序 -r 以相反的顺序来排序 -k 以某列进行排序 -t 指定分割符,默认是以空格为分隔符 …

案例:

$ cat testfile      # testfile文件原有排序
test 30
Hello 95
Linux 85

使用sort命令重新排序后的结果如如下:

$ sort testfile # 重排结果
Hello 95
Linux 85
test 30

使用 -k 参数设置对第二列的值进行重排,结果如下:

$ sort testfile -k 2
test 30
Linux 85
Hello 95

Linux uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。

uniq 可检查文本文件中重复出现的行列。

语法格式如下:

uniq [-cdu]...[输入文件][输出文件]

相关参数 参数说明 -c 在每列旁边显示该行重复出现的次数 -d 仅显示重复出现的行列 -u 仅显示出一次的行列 [输入文件] 指定已排序好的文本文件。如果不指定此项,则从标准读取数据 [输出文件] 指定输出的文件。如果不指定此选项,则将内容显示到标准输出设备(显示终端) …

案例:

testfile中的原有内容为:

$ cat testfile      #原有内容
test 30
test 30
test 30
Hello 95
Hello 95
Hello 95
Hello 95
Linux 85
Linux 85

使用uniq 命令删除重复的行后,有如下输出结果:

$ uniq testfile     #删除重复行后的内容
test 30
Hello 95
Linux 85

$ uniq -c testfile      #删除重复行后的内容
3 test 30             #前面的数字的意义为该行共出现了3次
4 Hello 95            #前面的数字的意义为该行共出现了4次
2 Linux 85            #前面的数字的意义为该行共出现了2次

当重复的行并不相邻时,uniq 命令是不起作用的,即若文件内容为以下时,uniq 命令不起作用:

$ cat testfile1      # 原有内容
test 30
Hello 95
Linux 85
test 30
Hello 95
Linux 85
test 30
Hello 95
Linux 85

这时我们就可以使用 sort:

$ sort  testfile1 | uniq
Hello 95
Linux 85
test 30

计算每行在文件中出现的次数:

[En]

Count the number of times each line appears in the file:

$ sort testfile1 | uniq -c
   3 Hello 95
   3 Linux 85
   3 test 30

在文件中找出重复的行:

$ sort testfile1 | uniq -d
Hello 95
Linux 85
test 30

Linux cut命令用于显示每行从开头算起 num1 到 num2 的文字。

语法格式如下:

cut [-c] [file]
cut [-df] [file]
...

使用说明:

cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。

如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。

相关参数 参数说明 -c 以字符为单位进行分割 -d 自定义分隔符,默认为制表符 -f 与-d一起使用,指定显示哪个区域 …

案例:

[root@jiangzhi ~]# cat juechen  # 原文件内容
|7|9|8|7|5|5|3|4|5|1|3|4|5
|7|8|7|8|5|2|5|4|5|1
|6|5|7|6|7|6|5|3|2
|6|5|6|7|6|5|7
|3|2|4|3|4|5|2|3|4|6|2|5
|2|3|3|5|3|4|6
|2|1|5|3|4|5|3|2|4
|5|4|5|4|3
|2|5|3|4|5|2|3

如果我们想要提取每行的第二个字节,我们可以这样做:

[En]

If we want to extract the second byte of each line, we can do this:

[root@jiangzhi ~]# cat juechen | cut -b2
7
7
6
6
3
2
2
5
2

Linux tr 命令用于转换或删除文件中的字符。

tr 指令从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。

语法格式如下:

tr [-cdst]...[第一字符集][第二字符集]
tr [OPTION]...SET1[SET2]

相关参数 参数说明 -c, –complement 反选设定字符。也就是符合 SET1 的部份不做处理,不符合的剩余部份才进行转换 -d, –delete 删除指令字符 -s, –squeeze-repeats 缩减连续重复的字符成指定的单个字符 -t, –truncate-set1 削减 SET1 指定范围,使之与 SET2 设定长度相等 …

案例:

testfile文件中的内容如下:

$ cat testfile         #testfile原来的内容
Linux networks are becoming more and more common,
but scurity is often an overlooked
issue. Unfortunately, in today's environment all networks
are potential hacker targets,
fro0m tp-secret military research networks to small home LANs.

Linux Network Securty focuses on securing Linux in a
networked environment, where the
security of the entire network needs to be considered
rather than just isolated machines.

It uses a mix of theory and practicl techniques to
teach administrators how to install and
use security applications, as well as how the
applcations work and why they are necesary.

将文件testfile中的小写字母全部转换成大写字母,此时,可使用如下命令:

cat testfile |tr a-z A-Z

使用 tr 命令大小写转换后,得到如下输出结果:

$ cat testfile | tr a-z A-Z #转换后的输出
LINUX NETWORKS ARE BECOMING MORE AND MORE COMMON, BUT SCURITY IS OFTEN AN OVERLOOKED
ISSUE. UNFORTUNATELY, IN TODAY'S ENVIRONMENT ALL NETWORKS ARE POTENTIAL HACKER TARGETS,
FROM TP-SECRET MILITARY RESEARCH NETWORKS TO SMALL HOME LANS.

LINUX NETWORK SECURTY FOCUSES ON SECURING LINUX IN A NETWORKED ENVIRONMENT, WHERE THE
SECURITY OF THE ENTIRE NETWORK NEEDS TO BE CONSIDERED RATHER THAN JUST ISOLATED MACHINES.

IT USES A MIX OF THEORY AND PRACTICL TECHNIQUES TO TEACH ADMINISTRATORS HOW TO INSTALL AND USE SECURITY APPLICATIONS, AS WELL AS HOW THE APPLCATIONS WORK AND WHY THEY ARE NECESARY.

Linux wc命令用于计算字数。

利用wc指令我们可以计算文件的Byte数、字数、或是行数,若不指定文件名称、或是所给予的文件名为”-“,则wc指令会从标准输入设备读取数据。

语法格式如下:

wc [-clw]...[文件...]

相关参数 参数说明 -c 统计文件的Bytes数 -l 统计文件的行数 -w 统计文件中单词的个数,默认以空白字符做为分隔符

注:在Linux系统中,一段连续的数字或字母组合为一个词

实例:

在默认的情况下,wc将计算指定文件的行数、字数,以及字节数。先查看testfile文件的内容,可以看到:

$ cat testfile
Linux networks are becoming more and more common, but scurity is often an overlooked  issue. Unfortunately, in today's environment all networks are potential hacker targets,fro0m tp-secret military research networks to small home LANs.

Linux Network Securty focuses on securing Linux in a networked environment, where the  security of the entire network needs to be considered rather than just isolated machines.

It uses a mix of theory and practicl techniques to teach administrators how to install and use security applications, as well as how the applcations work and why they are necesary.

使用wc统计,结果如下:

$ wc testfile           # testfile文件的统计信息
3 91 601 testfile       # testfile文件的行数为3、单词数91、字节数601

其中,3 个数字分别表示testfile文件的行数、单词数,以及该文件的字节数。

如果想同时统计多个文件的信息,例如同时统计testfile、testfile_1、testfile_2,可使用如下命令:

wc testfile testfile_1 testfile_2   #统计三个文件的信息

输出结果如下:

$ wc testfile testfile_1 testfile_2  #统计三个文件的信息
3 91 601 testfile                 # testfile文件的行数为3、单词数91、字节数601
9 18 78 testfile_1                   #第二个文件的行数为9、单词数18、字节数78
3 6 32 testfile_2                    #第三个文件的行数为3、单词数6、字节数32
15 115 711 总用量                    #三个文件总共的行数为15、单词数115、字节数711

Original: https://www.cnblogs.com/JZjuechen/p/15716292.html
Author: JZEason
Title: Linux文本处理相关命令

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/524268/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 操作系统实战45讲 -04 业界成熟的内核架构长什么样

    Linux 系统性能稳定且开源。在很多公司企业网络中被当作服务器来使用,这是 Linux 的一大亮点,也是它得以壮大的关键。 上图中大致分为五大重要组件,每个组件又分成许多模块从上…

    Linux 2023年6月7日
    0125
  • prometheus operator 监控redis-exporter

    创建 redis-exporter service bash;gutter:false; apiVersion: v1 kind: Service metadata: labels…

    Linux 2023年5月28日
    0103
  • xshell/bash/zsh 等终端鼠标滚轮乱码问题(转)

    终端上滚动鼠标,有可能不是预期的滚屏,而是出现一些乱码字符 解决方法:输入 reset命令 回车即可 注意: clear或者 ctrl+l是清屏命令,在此情况下无效。 转自: xs…

    Linux 2023年5月28日
    0177
  • Linux 系统安全加固经验总结

    本文为博主原创,转载请注明出处: 1. 禁止root密码登录 修改 /etc/ssh/sshd_config 中 允许root 用户登录 PermitRootLogin 的值改为 …

    Linux 2023年6月14日
    0101
  • USB转多串口产品设计

    在部分应用场合下需要为计算机或其他主机扩展多个串口,常见的扩展方式有USB转多串、PCI/PCIe转多串、蓝牙和以太网等网络转多串口。现在大多数台式计算机和笔记本电脑出于轻型化需要…

    Linux 2023年6月7日
    098
  • 【小记】腾讯云 Linux 虚拟机如何正确修改 hosts 文件

    如果直接修改 /etc/hosts 文件,重启后设置会丢失还原,原因是腾讯云虚拟机默认使用了 Cloud-Init 进行初始化操作。 参见:https://cloud.tencen…

    Linux 2023年6月13日
    096
  • 关于熵,条件熵,交叉熵等的介绍

    参考:《数学之美》一文搞懂交叉熵在机器学习中的使用,透彻理解交叉熵背后的直觉详解机器学习中的熵、条件熵、相对熵和交叉熵常用的分类问题中的损失函数 1.信息量与信息熵 香农在他著名的…

    Linux 2023年6月13日
    098
  • [Git专题] 环境搭建

    环境搭建 在正式使用 Git 之前,首先应当安装 Git 并完成一些基础配置,本章内容就教大家在 Ubuntu 和 CentOS 上安装 Git 的方法。 如果你使用的是基于 De…

    Linux 2023年6月14日
    082
  • springboot mybatis层整合

    1、导入Mybatis包 使用maven 2、配置数据库连接 注意:classpath后不需要加 / 3、测试 4、建立实体类,可使用Lombok来简化 5、 创建mapper目录…

    Linux 2023年6月14日
    092
  • redis中setbit的用法

    原文地址:http://www.zhihu.com/question/27672245 在redis中,存储的字符串都是以二级制的进行存在的。举例:设置一个 key-value ,…

    Linux 2023年5月28日
    096
  • Common LISP 命令大全

    书籍下载地址: Ansi Common Lisp 中文版|百度网盘 实用Common.Lisp编程 .pdf|百度网盘 LISP指令速查网站推荐: Simplified Commo…

    Linux 2023年6月6日
    0125
  • 关于多个 Cookie 的分隔符这件事

    对于 Cookie 的处理上,我最近遇到一个问题,那就是如何分割 Cookie 的内容。有人说是使用逗号分割,有人说是使用分号分割,究竟用哪个才是对的?其实这个答案是需要分为两个过…

    Linux 2023年6月6日
    091
  • OrchardCore Headless建站拾遗

    书接上回,OrchardCore的基本设置写了,但是有一说一,这个东西还是挺复杂的,如果需要构建一个简单的企业网站,还需要干点别的活。 本文考虑在尽量少编程的基础上,完成一个Hea…

    Linux 2023年6月6日
    0106
  • 小团队如何妙用 JuiceFS

    早些年还在 ENJOY 的时候, 就已经在用 JuiceFS, 并且一路伴随着我工作过的四家小公司, 这玩意对我来说, 已经成了理所应当不可或缺的基础设施, 对于我服务过的小团队而…

    Linux 2023年6月14日
    0118
  • 一文剖析HTML块和内联元素以及DIV容器,运维开发必备前端技能,基本功强化训练。

    写在开篇 运维开发必备前端技能!虽然很枯燥,知识点很多,但要坚持住哦!笔者和大家一起坚持。本篇和大家一起巩固html中的块元素和内联元素以及DIV容器。 块元素 块元素的特点是啥?…

    Linux 2023年6月7日
    0119
  • 目录遍历漏洞

    一.目录遍历漏洞原理目录遍历(路径遍历)是由于Web服务器或者Web应用程序对用户输入的文件名称的安全性验证不足而导致的一种安全漏洞,使得攻击者通过利用一些特殊字符就可以绕过服务器…

    Linux 2023年6月14日
    0106
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球