您现在的位置是:首页 > 编程 > 

20.linux 文件管理命令【md5sum】MD5 函数值计算和检查【awk】模式匹配语言

2025-07-27 15:10:08
20.linux 文件管理命令【md5sum】MD5 函数值计算和检查【awk】模式匹配语言 linux 文件管理命令:【md5sum】MD5 函数值计算和检查【awk】模式匹配语言md5sum:MD5 函数值计算和检查作用:检验 MD5 校验码。 用法:md5sum 选项 主要选项如下:命令 描述 -b,--bin

20.linux 文件管理命令【md5sum】MD5 函数值计算和检查【awk】模式匹配语言

linux 文件管理命令:【md5sum】MD5 函数值计算和检查【awk】模式匹配语言

md5sum:MD5 函数值计算和检查
  • 作用:检验 MD5 校验码。
  • 用法:md5sum 选项
  • 主要选项如下:

命令

描述

-b,--binary

以二进制模式读取。

-c,--check

从文件中读取 MD5 的校验值并予以检查。

-t,--text

以纯文本模式读取(默认)。

以下 个选项在进行校验时非常有用。

命令

描述

--quiet

不为校验成功的文件输出 OK。

--status

不输出任何内容,使用退出状态号显示成功。

-w,--warn

对格式不准确的校验和行进行警告。

--strict

验证成功时不输出任何信息。

--help

显示此帮助信息并退出。

--version

显示版本信息并退出。

校验和会按照 RFC 121 规范生成。在进行检查时,给出的输入格式应该和程序的输出样板格式相同。默认的输出模式是输出一行校验和的校验结果,并有一个字符来表示文件类型 (“*”代表二进制,“ ”代表纯文本),并同时显示每个文件的名称。

说明 MD5 算法常常被用来验证网络文件传输的完整性,防止文件被人篡改。MD5 全 称是报文摘要算法(Message Digest Algorithm 5),此算法对任意长度的信息逐位进行 计算,产生一个二进制、长度为 128 位(十六进制长度就是 2 位)的“指纹”(称“报 文摘要”),不同的文件产生相同的报文摘要的可能性是非常小的。

案例练习

(1)使用 md5sum 来产生指纹(报文摘要)。

代码语言:shell复制
#md5sum file > 

也可以把多个文件的报文摘要输出到一个 MD5 文件中,这要使用通配符*。例如某目录下 有几个.iso 文件,要把这几个.iso 文件的摘要输出到 文件中,命令如下:

代码语言:shell复制
#md5sum *.iso > 

(2)使用 MD5 报文摘要验证文件。 把下载的文件 file 和该文件的 报文摘要文件放在同一个目录下,然后用如下命令 进行验证:

代码语言:shell复制
#md5sum -c 

如果验证成功,则会输出“正确”。

awk:模式匹配语言
  • 作用:利用一组用户提供的命令来将一组文件和用户提供的扩展正则表达式进行比较,一 次一行,然后在任何与扩展正则表达式匹配的行上执行操作。
  • 用法: awk [opti] 'script' var=value file(s) awk [opti] -f scriptfile var=value file(s) 主要选项如下:

命令

描述

-F fs or --field-separator fs

指定输入文件的分隔符,fs 是一个字符串或是一个正则表达式,如-F:。

-v var=value or --asign var=value

赋值一个用户定义变量。

-f scripfile or --file scriptfile

从脚本文件中读取 awk 命令。

-mf nnn and -mr nnn

对 nnn 值设置内在限制,-mf 选项限制分配给 nnn 的最大块数目;-mr 选项限制记录的最大数目。这两个功能是 Bell 实验室版 awk 的扩展功能,在标准 awk中不适用。

-W compact or --compat, -W traditional or –traditional

在兼容模式下运行 awk。所以 gawk的行为和标准的 awk 完全一样,所有的 awk 扩展都被忽略。

-W copyleft or --copyleft, -W copyright or –copyright

打印简短的版权信息。

-W help or --help, -W usage or –usage

打印全部 awk 选项和每个选项的简短说明。

-W lint or –lint

打印不能向传统 UIX 平台移植的结构的警告。

-W lint-old or --lint-old

打印关于不能向传统 UIX 平台移植的结构的警告。

-W posix

打开兼容模式。但有以下限制,不识别\x、函数关键字、func、换码序列;当 fs 是一个空格时,将新行作为一个域分隔符;操作符=不能代替^和^=;fflush无效。

-W re-interval or --re-inerval

允许间隔正则表达式的使用,参考 grep 中的 POSIX 字符类,如括号表达式[:alpha:]。

-W source program-text or --source program-text

使用 program-text 作为源代码,可与-f命令混用。

awk 脚本是由模式和操作组成的,即 pattern {action},如$ awk '/root/' test,$ awk '$ < 100' test。二者是可选的,如果没有模式,则 action 应用到全部记录;如果没有 action,则输出匹配 全部记录。在默认情况下,每一个输入行都是一条记录,但用户可通过 RS 变量指定不同的分 隔符进行分隔。

说明 awk 命令的模式搜索比 grep 命令的搜索更常用,且它允许用户在输入文本行上执 行多个操作。awk 命令编程语言不需要编译,并允许用户使用变量、数字函数、字符 串函数和逻辑运算符。awk 命令受到 LAG、LC_ALL、PATH 等环境变量的影响。

awk 是 Linux 下的一个命令,它对其他命令的输出、对文件的处理都十分强大。其实它更 像一门编程语言,可以自定义变量,有条件语句,有循环,有数组,有正则,有函数等。它读 取输出或者文件的方式是一行一行地读,根据用户给出的条件进行查,并在出的行中进行 操作,感觉它的设计思想真的很简单,但是结合实际情况,具体操作起来就没有那么简单了。 它有 种形式:awk,gawk,nawk,平时所说的 awk 其实就是 gawk。

1.变量

变量及其描述如表

2.运算符

运算符及其描述如表

.awk 的正则

匹配符及其描述如表

4.字符串函数

字符串函数及其描述如表

5.数学函数

数学函数及其返回值如表

案例练习

(1)显示文件 中的行号和第三字段。

代码语言:shell复制
#awk '{printf"%0d%s\n",R,$1}'  
001/* 
002#include 
00int 
004{ 
005printf("Hello, 
006return 
007}

(2)显示长于 7 个字符的文件的行。

代码语言:shell复制
# awk 'length >7'  
/*  - Canonical "Hello, World!" program */ 
#include <stdio.h> 
int main(void) 
 printf("Hello, Linux programming world!\n"); 
 return 0;

()以相反顺序打印前两个字段。

代码语言:shell复制
awk 'length >7'  
/*  - Canonical "Hello, World!" program */ 
#include <stdio.h> 
int main(void) 
 		printf("Hello, Linux programming world!\n");
 		return 0; 
[root@localhost tmp]# awk '{ print $2, $1 }'  
 /* 
<stdio.h> #include 
main(void) int 
{ 
Linux printf("Hello, 
0; return 
}

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1187468.html

相关标签:无
上传时间: 2025-07-22 14:15:26
留言与评论(共有 17 条评论)
本站网友 冬虫夏草的功效与作用及食用方法
14分钟前 发表
平时所说的 awk 其实就是 gawk
本站网友 怎样去老年斑
10分钟前 发表
一 次一行
本站网友 looper
7分钟前 发表
本站网友 搜索服务
1秒前 发表
例如某目录下 有几个.iso 文件
本站网友 北京八大处医院
26分钟前 发表
--status 不输出任何内容
本站网友 阴蒂整形术
29分钟前 发表
R
本站网友 孕妇吃什么水果好
26分钟前 发表
-W posix 打开兼容模式
本站网友 黔西南电大
4分钟前 发表
如果没有模式
本站网友 广交会网站
9分钟前 发表
--text 以纯文本模式读取(默认)
本站网友 颈椎病的自我保健
13分钟前 发表
这要使用通配符*
本站网友 monorail
25分钟前 发表
将新行作为一个域分隔符;操作符和=不能代替^和^=;fflush无效
本站网友 宝宝不吃奶粉
15分钟前 发表
006return 007}(2)显示长于 7 个字符的文件的行
本站网友 单位换算计算器
27分钟前 发表
-W re-interval or --re-inerval 允许间隔正则表达式的使用
本站网友 金属锂
2分钟前 发表
并在出的行中进行 操作
本站网友 萧瑟秋风今又是
21分钟前 发表
LC_ALL
本站网友 前行
1分钟前 发表
这两个功能是 Bell 实验室版 awk 的扩展功能