返回顶部
首页 > 资讯 > 精选 >Shell过滤器怎么使用
  • 700
分享到

Shell过滤器怎么使用

2023-06-09 11:06:11 700人浏览 独家记忆
摘要

这篇文章主要介绍“shell过滤器怎么使用”,在日常操作中,相信很多人在Shell过滤器怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Shell过滤器怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来

这篇文章主要介绍“shell过滤器怎么使用”,在日常操作中,相信很多人在Shell过滤器怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Shell过滤器怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

我们己经知道,将几个命令通过管道符组合在一起就形成一个管道。通常,通过这种方式使用的命令就被称为过滤器。过滤器会获取输入,通过某种方式修改其内容,然后将其输出。

简单地说,过滤器可以概括为以下两点:

  • 如果一个 linux 命令是从标准输入接收它的输入数据,并在标准输出上产生它的输出数据(结果),那么这个命令就被称为过滤器。

  • 过滤器通常与 Linux 管道一起使用。

常用的被作为过滤器使用的命令如下所示:

命令说明
awk用于文本处理的解释性程序设计语言,通常被作为数据提取和报告的工具
cut用于将每个输入文件(如果没有指定文件则为标准输入)的每行的指定部分输出到标准输出。
grep用于搜索一个或多个文件中匹配指定模式的行。
tar用于归档文件的应用程序。
head用于读取文件的开头部分(默认是 10 行)。如果没有指定文件,则从标准输入读取。
paste用于合并文件的行。
sed用于过滤和转换文本的流编辑器。
sort用于对文本文件的行进行排序
split用于将文件分割成块。
strings用于打印文件中可打印的字符串
tac与 cat 命令的功能相反,用于倒序地显示文件或连接文件。
tail用于显示文件的结尾部分。
tee用于从标准输入读取内容并写入到标准输出和文件。
tr用于转换或删除字符。
uniq用于报告或忽略重复的行。
wc用于打印文件中的总行数、单词数或字节数。

接下来,我们通过几个实例来演示一下过滤器的使用。

在管道中使用 awk 命令

关于 awk 命令的具体用法,请大家自行学习,本节我们我们仅通过几个简单的实例来了解一下 awk 命令在管道中的使用。

实例1

查看系统中的所有的账号名称,并按名称的字母顺序排序。

[jb51.net]$ awk -F: '{print $1}' /etc/passwd | sortadmapacheavahiavahi-autoipdbindaemondbusftpgames...

在上例中,使用冒号:作为列分隔符,将文件 /etc/passwd 的内容分为了多列,并打印了第一列的信息(即用户名),然后将输出通过管道发送到了 sort 命令。

实例2

列出当前账号最常使用的 10 个命令。

[jb51.net]$ history | awk '{print $2}' | sort | uniq -c | sort -rn | head140 echo 75 man 71 cat 63 su 53 ls 50 vi 47 cd 40 date 26 let 25 paste

在上例中,history 命令将输出通过管道发送到 awk 命令,awk 命令默认使用空格作为列分隔符,将 history 的输出分为了两列,并把第二列内容作为输出通过管道发送到了 sort 命令,使用 sort 命令进行排序后,再将输出通过管道发送到了 uniq 命令,使用 uniq 命令 统计了历史命令重复出现的次数,再用 sort 命令将 uniq 命令的输出按照重复次数从高到低排序,最后使用 head 命令默认列出前 10 个的信息。

实例3

显示当前系统的总内存大小,单位为 KB。

[jb51.net]$ free | grep Mem | awk '{print $2}'2029860

在管道中使用 cut 命令

cut 命令被用于文本处理。你可以使用这个命令来提取文件中指定列的内容。

实例1

查看系统中登录 Shell 是“/bin/bash”的用户名和对应的用户主目录的信息:

[jb51.net]$ grep "bin/bash" /etc/passwd | cut -d: -f1,6root:/rootmozhiyan:/home/mozhiyan

如果你对 Linux 系统有所了解,你会知道,/ctc/passwd 文件被用来存放用户账号的信息,此文件中的每一行会记录一个账号的信息,每个字段之间用冒号分隔,第一个字段即是账号的账户名,而第六个字段就是账号的主目录的路径。

实例2

查看当前机器的CPU类型。

[jb51.net]$ cat /proc/cpuinfo | grep name | cut -d: -f2 | uniqIntel(R) Core(TM) i5-2520M CPU @ 2.50GHz

上例中,执行命令cat /proc/cpuinfo | grep name得到的内容如下所示:

[jb51.net]$ cat /proc/cpuinfo | grep namemodel name  : Intel(R) Core(TM) i5-2520M CPU @ 2.50GHzmodel name  : Intel(R) Core(TM) i5-2520M CPU @ 2.50GHzmodel name  : Intel(R) Core(TM) i5-2520M CPU @ 2.50GHzmodel name  : Intel(R) Core(TM) i5-2520M CPU 0 2.50GHz

然后,我们使用 cut 命令将上述输出内容以冒号作为分隔符,将内容分为了两列, 并显示第二列的内容,最后使用 uniq 命令去掉了重复的行。

实例3

查看当前目录下的子目录数。

[jb51.net]$ ls -l | cut -c 1 | grep d | wc -l5

上述管道命令主要做了如下操作:

  • 命令ls -l输出的内容中,每行的第一个字符表示文件的类型,如果第一个字符是d,就表示文件的类型是目录。

  • 命令cut -c 1是截取每行的第一个字符。

  • 命令grep d来获取文件类型是目录的行。

  • 命令wc -l用来获得 grep 命令输出结果的行数,即目录个数。

在管道中使用grep命令

grep 命令是在管道中比较常用的一个命令。

实例1

查看系统日志文件中的错误信息。

[jb51.net]$ grep -i "error:" /var/log/messages | less

实例2

查看系统中 Http 服务的进程信息。

[jb51.net]$ ps auxwww | grep httpdapache 18968 0.0 0.0 26472 10404 ?  S  Dec15  0:01 /usr/sbin/httpdapache 18969 0.0 0.0 25528 8308 ?  S  Dec15  0:01 /usr/sbin/httpdapache 18970 0.0 0.0 26596 10524 ?  S  Dec15  0:01 /usr/sbin/httpd

实例3

查找我们的程序列表中所有命令名中包含关键字 zip 的命令。

[jb51.net]$ ls /bin /usr/bin | sort | uniq | grep zipbunzip2bzip2bzip2recovergunzipgzip

实例4
查看系统安装的 kernel 版本及相关的 kernel 软件包。

[jb51.net]$ rpm -qa | grep kernelkernel-2.6.18-92.e15kernel-debuginfo-2.6.18-92.e15kernel-debuginfo-common-2.6.18-92.e15kernel-devel-2.6.18-92.e15

实例5

查找 /etc 目录下所有包含 IP 地址的文件。

[jb51.net]$ find /etc -type f -exec grep '[0-9][0-9]*[.][0-9][0-9]*[.][0-9][0-9]*[.][0-9][0-9]*' {} \;

在管道中使用 tar 命令

tar 命令是 Linux 系统中最常用的打包文件的程序。

实例1

你可以使用 tar 命令复制一个目录的整体结构。

[jb51.net]$ tar cf - /home/mozhiyan | ( cd /backup/; tar xf - )

实例2
网络地复制一个目录的整体结构。

[jb51.net]$ tar cf - /home/mozhiyan | ssh remote_host "( cd /backup/; tar xf - )"

实例3
跨网络地压缩复制一个目录的整体结构。

[jb51.net]$ tar czf - /home/mozhiyan | ssh remote_host "( cd /backup/; tar xzf - )"

实例4
检査 tar 归档文件的大小,单位为字节。

[jb51.net]$ cd /; tar cf - etc | wc -c215040

实例5
检查 tar 归档文件压缩为 tar.gz 归裆文件后所占的大小。

[jb51.net]$ tar czf - etc.tar | wc -c58006

实例6
检查 tar 归档文件压缩为 tar.bz2 归裆文件后所占的大小。

[jb51.net]$ tar cjf - etc.tar | wc -c50708

在管道中使用 head 命令

有时,你不需要一个命令的全部输出,可能只需要命令的前几行输出。这时,就可以使用 head 命令,它只打印命令的前几行输出。默认的输出行数为 10 行。

实例1

显示 ls 命令的前 10 行输出。

[jb51.net]$ ls /usr/bin | headaddftinfoafmtoditaproposarchashawkbase64basenamebashbashbug

实例2
显示 ls 命令的前 5 行内容。

[jb51.net]$ ls / | head -n 5bincygdriveCygwin.batCygwin.icoCygwin-Terminal.ico

在管道中使用 uniq 命令

uniq 命令用于报告或删除重复的行。我们将使用一个测试文件进行管道中使用 uniq 命令的实例讲解,其内容如下所示:

[jb51.net]$ cat testfileThis line occurs only once.This line occurs twice.This line occurs twice.This line occurs three times.This line occurs three times.This line occurs three times.

实例1
去掉输出中重复的行。

[jb51.net]$ sort testfile | uniQthis line occurs only once.This line occurs three times.This line occurs twice.

实例2
显示输出中各重复的行出现的次数,并按次数多少倒序显示。

[jb51.net]$ sort testfile | uniq -c | sort -nr3 This line occurs three times.2 This line occurs twice.1 This line occurs only once.

在管道中使用 wc 命令

wc 命令用于统计包含在文本流中的字符数、单同数和行数。

实例1
统计当前登录到系统的用户数。

[jb51.net]$ who | wc -l

实例2
统计当前的 Linux 系统中的进程数。

[jb51.net]$ ps -ef | wc -l

到此,关于“Shell过滤器怎么使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: Shell过滤器怎么使用

本文链接: https://lsjlt.com/news/255752.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Shell过滤器怎么使用
    这篇文章主要介绍“Shell过滤器怎么使用”,在日常操作中,相信很多人在Shell过滤器怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Shell过滤器怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-09
  • Shell过滤器的具体使用
    我们己经知道,将几个命令通过管道符组合在一起就形成一个管道。通常,通过这种方式使用的命令就被称为过滤器。过滤器会获取输入,通过某种方式修改其内容,然后将其输出。 简单地说,过滤器可以概括为以下两点: 如果一个 l...
    99+
    2022-06-04
    Shell过滤器
  • AngularJS怎么使用过滤器
    这篇文章给大家分享的是有关AngularJS怎么使用过滤器的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、为什么使用过滤器? 在实际操作中,我们需要对统一数据源进行多次转换,比...
    99+
    2024-04-02
  • 如何正确的使用Shell过滤器
    如何正确的使用Shell过滤器?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。常用的被作为过滤器使用的命令如下所示:命令说明awk用于文本处理的解释性程序设计语言...
    99+
    2023-06-06
  • JavaWeb过滤器Filter怎么使用
    这篇文章主要介绍“JavaWeb过滤器Filter怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaWeb过滤器Filter怎么使用”文章能帮助大家解决...
    99+
    2024-04-02
  • java filter过滤器怎么使用
    在 Java 中使用过滤器(Filter)需要以下步骤:1. 创建一个类并实现 javax.servlet.Filter 接口。该接...
    99+
    2023-09-06
    java filter
  • Vue.js的过滤器怎么使用
    这篇文章主要介绍了Vue.js的过滤器怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue.js的过滤器怎么使用文章都会有所收获,下面我们一起来看看吧。一、过滤器作用过滤器用于进行文本内容格式化处理。二...
    99+
    2023-06-29
  • Vue中过滤器怎么使用
    这篇文章主要讲解了“Vue中过滤器怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue中过滤器怎么使用”吧!过滤器其本质其实就是函数,作用在于用户输入数据用户,能够进行处理,并且返回...
    99+
    2023-06-03
  • Java布隆过滤器怎么使用
    本文小编为大家详细介绍“Java布隆过滤器怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java布隆过滤器怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。通常你判断某个元素是否存在用的是什么?很多...
    99+
    2023-06-29
  • es6中filter过滤器怎么使用
    这篇“es6中filter过滤器怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“es6中filter过滤器怎么使用”文...
    99+
    2023-07-05
  • Vue的filters过滤器怎么使用
    本篇内容主要讲解“Vue的filters过滤器怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue的filters过滤器怎么使用”吧!1、示例代码采用vue单文件组件,使用moment插...
    99+
    2023-07-04
  • springboot中怎么使用过滤器以及jsoup过滤XSS脚本怎么写
    springboot中怎么使用过滤器以及jsoup过滤XSS脚本怎么写,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。springboot使用过滤器,jsoup过滤XSS脚本背景...
    99+
    2023-06-22
  • springboot使用过滤器
    一:过滤器 1.过滤器介绍 过滤器是处于客户端与服务器资源文件之间的一道过滤网,帮助我们过滤一些不符合要求的请求。通常用作 Session校验,判断用户权限。 2.过滤器生命周期 使用过滤器很简单,只需要实现Filter类,然后重写它的3个...
    99+
    2023-09-03
    servlet java 开发语言 spring boot
  • PHP过滤器怎么用
    本篇内容主要讲解“PHP过滤器怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP过滤器怎么用”吧!PHP 过滤器PHP 过滤器用于验证和过滤来自非安全来源的数据,比如用户的输入。。。。。...
    99+
    2023-06-04
  • AngularJS中的过滤器filter怎么使用
    这篇文章主要介绍“AngularJS中的过滤器filter怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“AngularJS中的过滤器filter怎么使用”文章能帮助大家解决问题。在Angul...
    99+
    2023-07-04
  • jQuery如何使用过滤器过滤多属性
    这篇文章给大家分享的是有关jQuery如何使用过滤器过滤多属性的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。使用过滤器过滤多属性//This precision-based approache...
    99+
    2023-06-27
  • 使用jquery怎么过滤元素
    今天就跟大家聊聊有关使用jquery怎么过滤元素,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。jquery是什么jquery是一个简洁而快速的JavaScript库,它具有独特的链式...
    99+
    2023-06-14
  • Linux过滤命令怎么使用
    这篇文章主要讲解了“Linux过滤命令怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux过滤命令怎么使用”吧!在Linux系统中有许多命令可以用来过滤,比如:awk命令、sed...
    99+
    2023-06-28
  • VUE2.X过滤器怎么用
    这篇文章将为大家详细讲解有关VUE2.X过滤器怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。VUE2.X过滤器的使用方法有几种,今天讲一种,以cnode社区API为...
    99+
    2024-04-02
  • vue.js中过滤器怎么用
    这篇文章给大家分享的是有关vue.js中过滤器怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言大家再使用vue做项目时,查询功能当然必不可少,这就得使用vue强大的fil...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作