当前位置: 首页 > 编程日记 > 正文

Linux 上 12 个高效的文本过滤命令

在这篇文章中,我们将会看一些 Linux 中的过滤器命令行工具。过滤器是一个程序,它从标准输入读取数据,在数据上执行操作,然后把结果写到标准输出。

因此,它可以用来以强大的方式处理信息,例如重新结构化输出以生成有用的报告,修改文件里面的文本,以及其他很多系统管理任务。

下面是 Linux 上的一些有用的文件或者文本过滤器。

1、 awk 命令

awk 是一个卓越的模式扫描和处理语言,它可被用于在 Linux 下构造有用的过滤器。你可以通过阅读我们的awk 系列 1 到 13 部分 来开始使用它。

另外,也可以通过阅读 awk 的 man 手册来获取更多的信息和使用选项。

  1. $ man awk

2、 sed 命令

sed 是一款过滤和转换文本的强大的流编辑器。我们已经写了两篇关于 sed 的有用的文章,你可以通过这儿来了解:

  • 如何使用 GNU sed 命令在 Linux 下创建、编辑和处理文件
  • 日常 Linux 系统管理员任务使用的 15 个有用的 sed 命令小贴士和技巧

sed 的 man 手册已经添加控制选项和说明:

  1. $ man sed

3、 grep、 egrep、 fgrep、 rgrep 命令行

这些过滤器输出匹配指定模式的行。它们从一个文件或者标准输入读取行,并且输出所有匹配的行,默认输出到标准输出。

注意:主程序是 grep,这些变体与使用特定的选项的 grep 相同,如下所示(为了向后兼容性,它们依旧在使用):

  1. $ egrep = grep -E
  2. $ fgrep = grep -F
  3. $ rgrep = grep -r

下面是一些基本的 grep 命令:

  1. tecmint@TecMint ~ $ grep "aaronkilik" /etc/passwd
  2. aaronkilik:x:1001:1001::/home/aaronkilik:
  3. tecmint@TecMint ~ $ cat /etc/passwd | grep "aronkilik"
  4. aaronkilik:x:1001:1001::/home/aaronkilik:

在 Linux 下的 grep、 egrep 和 fgrep 的差异?中,你可以了解更多。

4、 head 命令

head 用于显示文件前面的部分,默认情况下它输出前 10 行。你可以使用 -n 标志来指定显示的行数:

  1. tecmint@TecMint ~ $ head /var/log/auth.log
  2. Jan 2 10:45:01 TecMint CRON[3383]: pam_unix(cron:session): session opened for user root by (uid=0)
  3. Jan 2 10:45:01 TecMint CRON[3383]: pam_unix(cron:session): session closed for user root
  4. Jan 2 10:51:34 TecMint sudo: tecmint : TTY=unknown ; PWD=/home/tecmint ; USER=root ; COMMAND=/usr/lib/linuxmint/mintUpdate/checkAPT.py
  5. Jan 2 10:51:34 TecMint sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
  6. Jan 2 10:51:39 TecMint sudo: pam_unix(sudo:session): session closed for user root
  7. Jan 2 10:55:01 TecMint CRON[4099]: pam_unix(cron:session): session opened for user root by (uid=0)
  8. Jan 2 10:55:01 TecMint CRON[4099]: pam_unix(cron:session): session closed for user root
  9. Jan 2 11:05:01 TecMint CRON[4138]: pam_unix(cron:session): session opened for user root by (uid=0)
  10. Jan 2 11:05:01 TecMint CRON[4138]: pam_unix(cron:session): session closed for user root
  11. Jan 2 11:09:01 TecMint CRON[4146]: pam_unix(cron:session): session opened for user root by (uid=0)
  12. tecmint@TecMint ~ $ head -n 5 /var/log/auth.log
  13. Jan 2 10:45:01 TecMint CRON[3383]: pam_unix(cron:session): session opened for user root by (uid=0)
  14. Jan 2 10:45:01 TecMint CRON[3383]: pam_unix(cron:session): session closed for user root
  15. Jan 2 10:51:34 TecMint sudo: tecmint : TTY=unknown ; PWD=/home/tecmint ; USER=root ; COMMAND=/usr/lib/linuxmint/mintUpdate/checkAPT.py
  16. Jan 2 10:51:34 TecMint sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
  17. Jan 2 10:51:39 TecMint sudo: pam_unix(sudo:session): session closed for user root

学习如何 使用带有 tail 和 cat 命令的 head 命令,以便在 Linux 下更有效的使用。

5、 tail 命令

tail 输出一个文件的后面的部分(默认 10 行)。使用 -n 选项来指定显示的行数。

下面的命令将会输出指定文件的最后 5 行:

  1. tecmint@TecMint ~ $ tail -n 5 /var/log/auth.log
  2. Jan 6 13:01:27 TecMint sshd[1269]: Server listening on 0.0.0.0 port 22.
  3. Jan 6 13:01:27 TecMint sshd[1269]: Server listening on :: port 22.
  4. Jan 6 13:01:27 TecMint sshd[1269]: Received SIGHUP; restarting.
  5. Jan 6 13:01:27 TecMint sshd[1269]: Server listening on 0.0.0.0 port 22.
  6. Jan 6 13:01:27 TecMint sshd[1269]: Server listening on :: port 22.

另外,tail 有一个特殊的选项 -f ,可以 实时查看一个文件的变化 (尤其是日志文件)。

下面的命令将会使你能够监控指定文件的变化:

  1. tecmint@TecMint ~ $ tail -f /var/log/auth.log
  2. Jan 6 12:58:01 TecMint sshd[1269]: Server listening on :: port 22.
  3. Jan 6 12:58:11 TecMint sshd[1269]: Received SIGHUP; restarting.
  4. Jan 6 12:58:12 TecMint sshd[1269]: Server listening on 0.0.0.0 port 22.
  5. Jan 6 12:58:12 TecMint sshd[1269]: Server listening on :: port 22.
  6. Jan 6 13:01:27 TecMint sshd[1269]: Received SIGHUP; restarting.
  7. Jan 6 13:01:27 TecMint sshd[1269]: Server listening on 0.0.0.0 port 22.
  8. Jan 6 13:01:27 TecMint sshd[1269]: Server listening on :: port 22.
  9. Jan 6 13:01:27 TecMint sshd[1269]: Received SIGHUP; restarting.
  10. Jan 6 13:01:27 TecMint sshd[1269]: Server listening on 0.0.0.0 port 22.
  11. Jan 6 13:01:27 TecMint sshd[1269]: Server listening on :: port 22.

阅读 tail 的 man 手册,获取使用选项和说明的完整内容:

  1. $ man tail

6、 sort 命令

sort 用于将文本文件或标准输入的行进行排序。

下面是一个名为 domain.list 的文件的内容:

  1. tecmint@TecMint ~ $ cat domains.list
  2. tecmint.com
  3. tecmint.com
  4. news.tecmint.com
  5. news.tecmint.com
  6. linuxsay.com
  7. linuxsay.com
  8. windowsmint.com
  9. windowsmint.com

你可以像这样运行一个简单的 sort 命令 来排序文件内容:

  1. tecmint@TecMint ~ $ sort domains.list
  2. linuxsay.com
  3. linuxsay.com
  4. news.tecmint.com
  5. news.tecmint.com
  6. tecmint.com
  7. tecmint.com
  8. windowsmint.com
  9. windowsmint.com

你可以有多种方式来使用 sort 命令,请参阅以下一些关于 sort 命令的有用的文章。

  • Linux 的 ‘sort’命令的14个有用的范例(一)
  • Linux 的 'sort'命令的七个有趣实例(二)
  • 如何基于修改日期和时间来查找和排序文件

7、 uniq 命令

uniq 命令用于报告或者忽略重复行,它从标准输入过滤行,并且把结果写到标准输出。

在对一个输入流运行 sort 之后,你可以使用 uniq 删除重复行,如下例所示。

为了显示行出现的数目,使用 -c 选项,要在对比时忽略大小写的差异,使用 -i 选项:

  1. tecmint@TecMint ~ $ cat domains.list
  2. tecmint.com
  3. tecmint.com
  4. news.tecmint.com
  5. news.tecmint.com
  6. linuxsay.com
  7. linuxsay.com
  8. windowsmint.com
  9. tecmint@TecMint ~ $ sort domains.list | uniq -c
  10. 2 linuxsay.com
  11. 2 news.tecmint.com
  12. 2 tecmint.com
  13. 1 windowsmint.com

通过阅读 uniq 的 man 手册来获取进一步的使用信息和选项:

  1. $ man uniq

8、 fmt 命令行

fmt 是一款简单的优化的文本格式化器,它重新格式化指定文件的段落,并且打印结果到标准输出。

以下是从文件 domain-list.txt 提取的内容:

  1. 1.tecmint.com 2.news.tecmint.com 3.linuxsay.com 4.windowsmint.com

为了把上面的内容重新格式化成一个标准的清单,运行下面的命令,使用 -w 选项定义最大行宽度:

  1. tecmint@TecMint ~ $ cat domain-list.txt
  2. 1.tecmint.com 2.news.tecmint.com 3.linuxsay.com 4.windowsmint.com
  3. tecmint@TecMint ~ $ fmt -w 1 domain-list.txt
  4. 1.tecmint.com
  5. 2.news.tecmint.com
  6. 3.linuxsay.com
  7. 4.windowsmint.com

9、 pr 命令

pr 命令转换文本文件或者标准输入之后打印出来。例如在 Debian 系统上,你可以像下面这样显示所有的安装包:

  1. $ dpkg -l

为了将要打印的列表在页面和列中组织好,使用以下命令。

  1. tecmint@TecMint ~ $ dpkg -l | pr --columns 3 -l 20
  2. 2017-01-06 13:19 Page 1
  3. Desired=Unknown/Install ii adduser ii apg
  4. | Status=Not/Inst/Conf- ii adwaita-icon-theme ii app-install-data
  5. |/ Err?=(none)/Reinst-r ii adwaita-icon-theme- ii apparmor
  6. ||/ Name ii alsa-base ii apt
  7. +++-=================== ii alsa-utils ii apt-clone
  8. ii accountsservice ii anacron ii apt-transport-https
  9. ii acl ii apache2 ii apt-utils
  10. ii acpi-support ii apache2-bin ii apt-xapian-index
  11. ii acpid ii apache2-data ii aptdaemon
  12. ii add-apt-key ii apache2-utils ii aptdaemon-data
  13. 2017-01-06 13:19 Page 2
  14. ii aptitude ii avahi-daemon ii bind9-host
  15. ii aptitude-common ii avahi-utils ii binfmt-support
  16. ii apturl ii aview ii binutils
  17. ii apturl-common ii banshee ii bison
  18. ii archdetect-deb ii baobab ii blt
  19. ii aspell ii base-files ii blueberry
  20. ii aspell-en ii base-passwd ii bluetooth
  21. ii at-spi2-core ii bash ii bluez
  22. ii attr ii bash-completion ii bluez-cups
  23. ii avahi-autoipd ii bc ii bluez-obexd
  24. .....

其中,使用的标志如下:

  • --column 定义在输出中创建的列数。
  • -l 指定页面的长度(默认是 66 行)。

10、 tr 命令行

这个命令从标准输入转换或者删除字符,然后输出结果到标准输出。

使用 tr 的语法如下:

  1. $ tr options set1 set2

看一下下面的例子,在第一个命令,set1( [:upper:] ) 代表指定输入字符的大小写(都是大写字符)。set2([:lower:]) 代表期望结果字符的大小写。第二个例子意思相似,转义字符 \n 表示在新的一行打印输出:

  1. tecmint@TecMint ~ $ echo "WWW.TECMINT.COM" | tr [:upper:] [:lower:]
  2. www.tecmint.com
  3. tecmint@TecMint ~ $ echo "news.tecmint.com" | tr [:lower:] [:upper:]
  4. NEWS.TECMINT.COM

11、 more 命令

more 命令是一个有用的文件过滤器,最初为查看证书而建。它一页页显示文件内容,用户可以通过按回车来显示更多的信息。

你可以像这样使用它来显示大文件:

  1. tecmint@TecMint ~ $ dmesg | more
  2. [ 0.000000] Initializing cgroup subsys cpuset
  3. [ 0.000000] Initializing cgroup subsys cpu
  4. [ 0.000000] Initializing cgroup subsys cpuacct
  5. [ 0.000000] Linux version 4.4.0-21-generic (buildd@lgw01-21) (gcc version 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2) ) #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 (Ubuntu 4.4.0-21.37-generic
  6. 4.4.6)
  7. [ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.4.0-21-generic root=UUID=bb29dda3-bdaa-4b39-86cf-4a6dc9634a1b ro quiet splash vt.handoff=7
  8. [ 0.000000] KERNEL supported cpus:
  9. [ 0.000000] Intel GenuineIntel
  10. [ 0.000000] AMD AuthenticAMD
  11. [ 0.000000] Centaur CentaurHauls
  12. [ 0.000000] x86/fpu: xstate_offset[2]: 576, xstate_sizes[2]: 256
  13. [ 0.000000] x86/fpu: Supporting XSAVE feature 0x01: 'x87 floating point registers'
  14. [ 0.000000] x86/fpu: Supporting XSAVE feature 0x02: 'SSE registers'
  15. [ 0.000000] x86/fpu: Supporting XSAVE feature 0x04: 'AVX registers'
  16. [ 0.000000] x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'standard' format.
  17. [ 0.000000] x86/fpu: Using 'eager' FPU context switches.
  18. [ 0.000000] e820: BIOS-provided physical RAM map:
  19. [ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009d3ff] usable
  20. [ 0.000000] BIOS-e820: [mem 0x000000000009d400-0x000000000009ffff] reserved
  21. [ 0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved
  22. [ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000a56affff] usable
  23. [ 0.000000] BIOS-e820: [mem 0x00000000a56b0000-0x00000000a5eaffff] reserved
  24. [ 0.000000] BIOS-e820: [mem 0x00000000a5eb0000-0x00000000aaabefff] usable
  25. --More--

12、 less 命令

less 是和上面的 more 命令相反的一个命令,但是它提供了额外的特性,而且对于大文件,它会更快些。

按照 more 命令相同的方式使用它:

  1. tecmint@TecMint ~ $ dmesg | less
  2. [ 0.000000] Initializing cgroup subsys cpuset
  3. [ 0.000000] Initializing cgroup subsys cpu
  4. [ 0.000000] Initializing cgroup subsys cpuacct
  5. [ 0.000000] Linux version 4.4.0-21-generic (buildd@lgw01-21) (gcc version 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2) ) #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 (Ubuntu 4.4.0-21.37-generic
  6. 4.4.6)
  7. [ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.4.0-21-generic root=UUID=bb29dda3-bdaa-4b39-86cf-4a6dc9634a1b ro quiet splash vt.handoff=7
  8. [ 0.000000] KERNEL supported cpus:
  9. [ 0.000000] Intel GenuineIntel
  10. [ 0.000000] AMD AuthenticAMD
  11. [ 0.000000] Centaur CentaurHauls
  12. [ 0.000000] x86/fpu: xstate_offset[2]: 576, xstate_sizes[2]: 256
  13. [ 0.000000] x86/fpu: Supporting XSAVE feature 0x01: 'x87 floating point registers'
  14. [ 0.000000] x86/fpu: Supporting XSAVE feature 0x02: 'SSE registers'
  15. [ 0.000000] x86/fpu: Supporting XSAVE feature 0x04: 'AVX registers'
  16. [ 0.000000] x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'standard' format.
  17. [ 0.000000] x86/fpu: Using 'eager' FPU context switches.
  18. [ 0.000000] e820: BIOS-provided physical RAM map:
  19. [ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009d3ff] usable
  20. [ 0.000000] BIOS-e820: [mem 0x000000000009d400-0x000000000009ffff] reserved
  21. [ 0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved
  22. [ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000a56affff] usable
  23. [ 0.000000] BIOS-e820: [mem 0x00000000a56b0000-0x00000000a5eaffff] reserved
  24. [ 0.000000] BIOS-e820: [mem 0x00000000a5eb0000-0x00000000aaabefff] usable
  25. :

学习为什么 Linux 下进行有效的文件浏览, ‘less’ 比 ‘more’ 命令更快。

原文发布时间为:2017-02-17

本文来自云栖社区合作伙伴“Linux中国”

相关文章:

linux在多核处理器上的负载均衡原理

原文出处:http://donghao.org/uii/ 【原理】 现在互联网公司使用的都是多CPU(多核)的服务器了,Linux操作系统会自动把任务分配到不同的处理器上,并尽可能的保持负载均衡。那Linux内核是怎么做到让各个CPU的压力均匀的呢…

完全免费,简化版Plotly推出,秒绘各类可视化图表

作者 | Peter来源 | Python编程时光今天给大家推荐一个可视化神器 - Plotly_express ,上手非常的简单,基本所有的图都只要一行代码就能绘出一张非常酷炫的可视化图。以下是这个神器的详细使用方法,文中附含大量的 GIF 动图示例图。环境准备本…

Linux 启动过程详解

说明:由于图片太大,上传博客的图片是jpg格式的有点失真,看不清楚,可以双击打开查看,有朋友想看高清,无码,无水印的大图(png格式)请下载附件!转载于:https://b…

java web项目优化记录:优化考试系统

考试系统在进行压力測试时发现,并发量高之后出现了button无反应。试题答案不能写到数据库的问题,于是针对这些核心问题,进行了优化。 数据库方面: Select语句:Select * from TEB_VB_XZTRecord改为select 必须的列 form…

深度学习中的注意力机制(三)

作者 | 蘑菇先生来源 | NewBeeNLP原创出品 深度学习Attenion小综述系列:深度学习中的注意力机制(一) 深度学习中的注意力机制(二)目前深度学习中热点之一就是注意力机制(Attention Mechanisms&#xff…

程序分析工具gprof介绍

程序分析是以某种语言书写的程序为对象,对其内部的运作流程进行分析。程序分析的目的主要有三点:一是通过程序内部各个模块之间的调用关系,整体上把握程序的运行流程,从而更好地理解程序,从中汲取有价值的内容。二是以…

hadoop源码datanode序列图

2019独角兽企业重金招聘Python工程师标准>>> 转载于:https://my.oschina.net/u/572882/blog/134796

HDU 2206 IP的计算(字符串处理)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid2206 Problem Description在网络课程上,我学到了非常多有关IP的知识。IP全称叫网际协议,有时我们又用IP来指代我们的IP网络地址,如今IPV4下用一个32位无符号整数来表示&#…

有规律格式化文本文件插入数据库

现有以下文本文件: *理光(深圳)工业发展有限公司(D15)(位于福田区)1.厨师1名;男;30岁以下;高中以上学历;中式烹调师中级以上,需备齐身份证/毕业证/流动人口婚育证明原件及复印件1份.经公司体检不合格者将不予录用,不合格者体检费自理.福利及待遇:工作时…

java使用uploadify上传文件

一、简介Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示;可以上传多个文件;详细的使用方法网上有很多,建议到官网参考,这里仅仅展示其使用的效果;官网:www.uploadi…

微软亚洲研究院成立OpenNetLab,探索以“数据为中心”AI网络研究新范式!

2020年12月18日,微软亚洲研究院宣布联合清华大学、北京大学、南京大学、兰州大学、新加坡国立大学、首尔国立大学等多所亚洲地区高校,成立OpenNetLab开放网络平台联盟。 OpenNetLab官网地址:https://opennetlab.org/ 通过为研究人员提供通用的…

圆角文本框的制作

把border:0px;outline:none;就可以清除边框。然后在外面放一个圆角div,文本框在div内居中的话能够,设置行高和text-align:center。或者也能够在背景图上放文本框。

微软收购 GitHub 两年后,大咖共论开源新生态

头图 | CSDN 下载自视觉中国被微软收购两年的GitHub,现在怎么样了?据《 2020 年度 GitHub Octoverse 报告》显示,GitHub 上开发者数量达到 5600 万,新增 6000 万个存储库以及 19 亿个 contribution。GitHub 预计到 2025 年&#x…

网页中如何获取客户端系统已安装的所有字体?

如何获取系统字体&#xff1f;1.首先在需要获取系统字体的网页<body>后加入以下代码&#xff1a;<DIV style"LEFT: 0px; POSITION: absolute; TOP: 0px"><OBJECT ID"dlgHelper" CLASSID"clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b&q…

Web开发常见的软件架构

Web开发常见的软件架构 一、看需求分析&#xff0c;看产品PRD&#xff1a;Product Requirement Document 二、根据PRD和产品原型建数据库表,注意三范式要求,用工具到处数据库关系图&#xff0c;并快速地理清数据库思路 三、搭建项目架构&#xff0c;常用三层&#xff0c;自动…

thinkphp整合系列之gulp实现前端自动化

这又是一个一次整合终身受益&#xff1b;不止是终身&#xff1b;换个项目同样可以很方便复用&#xff1b;不信你看另一个项目&#xff1a; thinkphp整合系列之gulp实现前端自动化 虽然我等叫php程序猿&#xff1b;但是不可避免的是要跟html打交道的&#xff1b;而且php这么容易…

网上几种常见校验码图片分析

前几天受刺激了&#xff0c;准备把CSDN的校验码图片修改。就上网找了一些参考示例。和分析了一些校验码的功能。不敢独享&#xff0c;整理到一起&#xff0c;跟大家分享。 至于CSDN新的校验码写法&#xff0c;不是这里面的任何一种。也不是网上可以找到的。这个不好公开&#…

语言都是相通的,学好一门语言,再学第二门语言就很简单,记录一下我复习c语言的过程。...

语言都是相通的&#xff0c;学好一门语言&#xff0c;再学第二门语言就很简单&#xff0c;记录一下我复习c语言的过程。为了将本人的python培训提高一个层次&#xff0c;本人最近买了很多算法的书.这个书上的代码基本都是c语言实现的&#xff0c;c语言很久没有用了&#xff0c;…

百度飞桨全新升级:重磅推出PaddleHelix平台、开源框架V2.0RC,硬件生态路线图全公开...

12月20日&#xff0c;WAVE SUMMIT2020深度学习开发者峰会在北京举办。本届峰会&#xff0c;百度飞桨带来八大全新发布与升级&#xff0c;有支持前沿技术探索和应用的生物计算平台PaddleHelix螺旋桨&#xff0c;开发更加便捷的飞桨开源框架2.0 RC版&#xff0c;端云协同的AI集成…

Java解压zip文件(文本)压缩包

2019独角兽企业重金招聘Python工程师标准>>> 说明&#xff1a;由于我们的日志收集到指定服务器上&#xff0c;会按天压缩成一个zip格式的压缩包&#xff0c;但是有时候需要对这些日志进行处理&#xff0c;人工解压在处理&#xff0c;显示对于大量的日志处理是不行的…

Asp.Net 动态生成验证码

我们在设计用户登录模块时&#xff0c;经常会用到验证码&#xff0c;可以有效地防止黑客软件的恶意破解&#xff0c;现公开我常用的验证码的源代码&#xff0c;生成效果如图&#xff1a;。使用方法&#xff1a;1、在Web项目中添加一个类&#xff0c;如“CreateImage.cs”&#…

Hyper-v 3.0虚拟化平台群集共享磁盘无法failover的故障

碰到一个hyper-v 3.0虚拟化平台和HP存储的兼容性问题&#xff0c;放出来和大家分享一下。平台&#xff1a;windows server 2012 RTMhyper-v 3.0故障现象&#xff1a;生产虚拟平台宿主机意外重启&#xff0c;且重启后一块存储磁盘变成脱机状态&#xff0c;进一步测试发现宿主机上…

2020年中国AI算力报告发布:超大算法模型挑战之下,公共AI算力基建是关键

随着人工智能算法突飞猛进的发展&#xff0c;越来越多的模型训练需要巨量的算力支撑才能快速有效地实施。目前&#xff0c;如AlphaFold、GPT-3等模型已经逼近人工智能的算力极限&#xff0c;GPT-3的模型尺寸增大到了1750亿&#xff0c;数据量也达到了惊人的45TB。一方面&#x…

Spring中使用Log4j记录日志

以下内容引用自http://wiki.jikexueyuan.com/project/spring/logging-with-log4j.html&#xff1a; 例子&#xff1a; pom.xml&#xff1a; <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"x…

象 DEV-Club 那样的彩色校验码

要读懂这些代码主要是要了解ASP中操作二进制数据的对象ADODB.Stream&#xff01;本程序主要用的就是Adodb.Stream&#xff0c;如果你有这个基础&#xff0c;就可以进一步添加更多的功能如加入杂点&#xff0c;渐变底色&#xff0c;数字行列错位&#xff0c;笔画短点&#xff0c…

北斗时钟在国内各行业的应用前景

北斗时钟在国内各行业的应用前景 北斗时钟&#xff08;GPS标准同步钟,GPS对时设备,北斗时间服务器&#xff09;以北斗卫星信号作为时间源&#xff0c;同时可选GPS、IRIG-B码、OCX0、铷原子钟、CDMA信号等时钟源&#xff0c;对时精度达20nS。 上海锐呈电气有限公司产品采用表…

寻找长沙“科技之星”,CSDN星城大巡礼

2020年&#xff0c;长沙市委主要领导发出“软件产业再出发”的号召&#xff0c;并颁布了软件三年行动计划。今年5月&#xff0c;CSDN作为专业的IT社区&#xff0c;与长沙高新区签约&#xff0c;将全国总部落户长沙&#xff0c;这一战略决策&#xff0c;让CSDN与长沙的联结进一步…

DevDays2012 开发者日中文版资料下载

DevDays2012开发者日中文版资料已经上传到ADN网站&#xff0c;如果你是ADN会员&#xff0c;可以从下面地址下载&#xff1a;http://adn.autodesk.com/adn/servlet/item?siteID4814862&id21105549 作者&#xff1a;峻祁连邮箱&#xff1a;junqilian163.com 出处&#xff1a…

对人脑而言,阅读计算机代码和阅读语言有何不同?

作者 | Anne Trafton 翻译 | 火火酱,责编 | 晋兆雨 出品 | AI科技大本营 头图 | 付费下载于视觉中国 神经科学家们发现&#xff0c;人类在解读代码时会激活一个通用的大脑区域网络&#xff0c;但不会激活语言处理中心。 就某些方面而言&#xff0c;学习计算机编程和学习一门新语…

如何在asp.net中动态生成验证码

现在越来越多的网站喜欢搞个验证码出来&#xff0c;而且各个语言基本上都能做到&#xff0c;今天我来一个C#写的&#xff01; using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Drawing;using System.Web;using System.Web…