文本处理工具

简介: 时间:2017.11.21作者:李强参考:man,info,magedu讲义声明:以下英文纯属个人翻译,英文B级,欢迎纠正,以下内容纯属个人理解,并没有对错,只是参考,盗版不纠,才能有限,希望不误人子弟为好。

时间:2017.11.21

作者:李强

参考:man,info,magedu讲义

声明:以下英文纯属个人翻译,英文B级,欢迎纠正,以下内容纯属个人理解,并没有对错,只是参考,盗版不纠,才能有限,希望不误人子弟为好。

1、 Output of entire files(整个文件内容的输出)

These commands read and write entire files, possibly transforming them in some way.

  • Menu:

  • cat :Concatenate and write files.
  • tac :Concatenate and write files in reverse.
  • nl :Number lines and write files.
  • od :Write files in octal or other formats.
  • base64 :Transform data into printable data.

cat:

NAME
       cat - concatenate files and print on the standard output

SYNOPSIS
       cat [OPTION]... [FILE]...

-n:显示行号
-b:不显示空行行号
-s:压缩连续的空行为一行
-A:显示所有控制符
-E:显示行结束符,可以用来检查空格tab等肉眼无法判断的字符。

tac:

NAME
       tac - concatenate and print files in reverse

SYNOPSIS
       tac [OPTION]... [FILE]...

nl:

NAME
       nl - number lines of files

SYNOPSIS
       nl [OPTION]... [FILE]...

rev:

NAME
     rev - reverse lines of a file or files

SYNOPSIS
     rev [file ...]

2、Summarizing files(整理文件)

  • wc :Print newline, word, and byte counts
  • sum :Print checksum and block counts
  • cksum :Print CRC checksum and byte counts
  • md5sum :Print or check MD5 digests
  • sha1sum :Print or check SHA-1 digests
  • sha2 :Print or check SHA-2 digests

wc:

NAME
       wc - print newline, word, and byte counts for each file

SYNOPSIS
       wc [OPTION]... [FILE]...
       wc [OPTION]... --files0-from=F

3、Operating on sorted files(对文件内容进行排序)

  • sort :Sort text files.
  • shuf :Shuffle text files.
  • uniq : Uniquify files.
  • comm :Compare two sorted files line by line.
  • ptx :Produce a permuted index of file contents.
  • tsort :Topological sort.

    sort:

NAME
       sort - sort lines of text files

SYNOPSIS
       sort [OPTION]... [FILE]...
       sort [OPTION]... --files0-from=F

-b --ignore-leading-blanks
-d --dictionary-order字典书序,仅考虑空格和字母数字
-f --ignore-case 忽略字母大小写
-g --general-numeric-sort按一般数值排序1-10 11 12
-i --ignore-noprinting 仅考虑打印字符,忽略非打印字符
-M --month-sort 以月份来排序,在月份排序的时候使用
-h --human-reading-numeric 以人类可读的数字,例如2k 1g ,在单位排序的时候可以使用
-n --numeric-sort
-R --random-sort
-r --reserve 反转排序

uniq:

NAME
       uniq - report or omit repeated lines

SYNOPSIS
       uniq [OPTION]... [INPUT [OUTPUT]]

4、Output of parts of files(文件部分的输出)

  • head : Output the first part of files
  • tail : Output the last part of files
  • split :Split a file into fixed-size pieces
  • csplit :Split a file into context-determined pieces

head:

    NAME
       head - output the first part of files

SYNOPSIS
       head [OPTION]... [FILE]...

-c:--bytes=[-]K 指定显示文件开头多少字节不是字符character,如果K前加dash(破折号),表示打印所有字符除了最后几个字符

-n:--lines=[-]K 指定显示文件开头多少行,如果K前加dash(破折号),表示打印所有除了最后几行

-#:指定从哪行开始显示就是-n的缩写,不写n了,建议最好写,容易混,比如当#为-1时,就必须用-n -1才行。

-q:--quiet,--silent ,当显示多个文件时,开头不显示文件名

-v: (默认)当显示多个文件时,开头显示文件名

当-c时,K可以加许多后缀:b 512, kB 1000, K 1024, MB 10001000, M 10241024, GB 100010001000, G 102410241024, T, P, E, Z, Y.等

tail:

 NAME
       tail - output the last part of files

SYNOPSIS
       tail [OPTION]... [FILE]...

-c:--bytes=[-]K 指定显示文件开头多少字节不是字符character,如果K前加dash(破折号),表示打印所有字符除了最后几个字符

-n:--lines=[-]K 指定显示文件开头多少行,如果K前加dash(破折号),表示打印所有除了最后几行

-#:指定从哪行开始显示就是-n的缩写,不写n了,建议最好写,容易混,比如当#为-1时,就必须用-n -1才行。

-q:--quiet,--silent ,当显示多个文件时,开头不显示文件名

-v: (默认)当显示多个文件时,开头显示文件名


以上和head一样,下面是tail的其他选项


--follow[=HOW]
--retry:主要用来配置--follow=name使用,当tail发现文件不存在了或者不可访问,它只会报告这个消息,不会继续监控文件尾部是否有追加内容了。
-f:(默认) 相当于 --follow=descriptor 跟踪显示文件fd新追加的内容,常用日志监控,但是如果文件已经不存在了或者被改名,他还是依然在监控。

-F:相当于 --follow=name --retry

--sleep-interval=NUMBER 轮询的时间,默认为1秒,可以修改

--pid=PID 例如make xxx >& makerr & tail --pid=$! -f makerr ,当编译结束时,pid结束,tail -f 也会自动结束追踪文件。

--max-unchanged-stats=N

5、Operating on fields(对字段的操作)

  • cut :Print selected parts of lines
  • paste :Merge lines of files
  • join :Join lines on a common field

    cut:

NAME
       cat - concatenate files and print on the standard output

SYNOPSIS
       cat [OPTION]... [FILE]...

With no FILE, or when FILE is -, read standard input.
-b --bytes=LIST
-c --characters=LIST
-d -delimiter=DELIM
-f --fields=LIST
-n
--complement
-s
LIST:n,n-,n-m.-m 区间,第n,第n-end 第n-第m,start-第m
DELIM(分隔符)
-c:
-n:

paste:

NAME
       paste - merge lines of files

SYNOPSIS
       paste [OPTION]... [FILE]...

默人按行把各个文件组合在组合在意,行与行之间默认用tab键作为分隔符
-d:--delimiters=LIST 用LIST中的分隔符,而不是使用默认的tab键,
-s:--serial 一次一个文件而不是每次一行来,就是一个文件的第一行和第二行用tab键来分隔然后和第三行tab键分隔,直到最后一样,就是把一个文件放到一行里面,几个文件就会生成几行,用管道传给cat -E -n 可以看得很清楚。可以用于什么呢?值得思考

组合使用

cat -n /etc/passwd | head -n 10 | tail -1 取第10行。

相关文章
|
JavaScript
HTTP/2 协议-服务端主动推送消息
HTTP/2 协议-服务端主动推送消息
637 0
|
10月前
|
存储 弹性计算 分布式计算
云计算在大数据处理中的优势与挑战
云计算在大数据处理中的优势与挑战
|
11月前
|
机器学习/深度学习 算法
深度学习中的优化算法及其应用
本文探讨了深度学习中常用的优化算法,包括梯度下降、随机梯度下降、动量方法和Adam方法。通过对比这些算法的优缺点及适用场景,帮助读者更好地理解和应用这些优化方法。
184 2
|
10月前
|
JavaScript 数据安全/隐私保护 Python
python爬取m3u8实战!!
本文详细介绍了如何抓取和处理m3u8视频文件,包括从网页源代码中提取m3u8文件地址、下载m3u8文件及其对应的ts片段、处理加密的ts文件以及使用ffmpeg合并视频片段。通过多线程下载和文件路径处理,确保了高效和准确的视频抓取与合并。文中还提供了具体的Python代码示例,帮助读者理解和实现整个过程。
707 1
|
11月前
|
Arthas 监控 数据可视化
JVM进阶调优系列(7)JVM调优监控必备命令、工具集合|实用干货
本文介绍了JVM调优监控命令及其应用,包括JDK自带工具如jps、jinfo、jstat、jstack、jmap、jhat等,以及第三方工具如Arthas、GCeasy、MAT、GCViewer等。通过这些工具,可以有效监控和优化JVM性能,解决内存泄漏、线程死锁等问题,提高系统稳定性。文章还提供了详细的命令示例和应用场景,帮助读者更好地理解和使用这些工具。
|
SQL 存储 缓存
揭秘SQL中的公用表表达式:数据查询的新宠儿
揭秘SQL中的公用表表达式:数据查询的新宠儿
220 2
|
Ubuntu 开发工具 虚拟化
MacOS系统基于VMware Fusion配置Ubuntu 22.04LTS环境
这篇文章介绍了如何在MacOS系统上使用VMware Fusion虚拟化软件配置Ubuntu 22.04 LTS环境,包括自定义VMware Fusion网段、Ubuntu系统安装、配置root用户登录、设置静态IP地址、修改默认网卡名称、配置PS1变量、设置登录界面为字符界面、修改软件源和进行vim基础优化等步骤。
911 2
|
关系型数据库 MySQL 数据库
成功解决:Navicat 连接虚拟机Docker中的mysql数据库失败(仅限某些特殊情况)
这篇文章介绍了在Ubuntu环境中使用Docker部署Flask项目的方法,包括创建测试项目、设置数据库、构建Flask和Nginx镜像以及容器编排,其中使用了MySQL 5.7作为数据库,Flask 2.0.2作为Web框架,Gunicorn 20.1.0作为应用服务器,Nginx 1.21.4作为反向代理,并解决了Navicat连接Docker中的MySQL数据库失败的问题。
|
Java Nacos 数据安全/隐私保护
nacos启动问题之启动时连接报错如何解决
Nacos是一个开源的、易于部署的动态服务发现、配置管理和服务管理平台,旨在帮助微服务架构下的应用进行快速配置更新和服务治理;在实际运用中,用户可能会遇到各种报错,本合集将常见的Nacos报错问题进行归纳和解答,以便使用者能够快速定位和解决这些问题。
4081 102
|
设计模式 安全 程序员
【C++ 智能指针】C++智能指针的正确打开方式:避免滥用的实践指南
【C++ 智能指针】C++智能指针的正确打开方式:避免滥用的实践指南
764 1