linux中竖线'|',双竖线‘||’,&和&&的意思(转)

linux中竖线'|',双竖线‘||’,&和&&的意思(转),第1张

对于初学者来说这几个意思可能只知道其中几个的意思,下面我们来看一下。

1、竖线‘|’ ,在linux中是作为管道符的,将‘|’前面命令输出作为'|'后面的输入。举个例子

加上|head -n1 之后

2、双竖线‘||’,用双竖线‘||’分割的多条命令,执行的时候遵循如下规则,如果前一条命令为真,则后面的命令不会执行,如果前一条命令为假,则继续执行后面的命令。

举例输入1小于2双竖线输出b,前面为真,后面不执行则没有输出b,输入1大于2双竖线echo b,前面为假则输出b。

再举一个实用性的例子,判断文件是否存在,不存在则创建,存在就什么都不执行。

3、&同时执行多条命令,不管命令是否执行成功

4、&&可同时执行多条命令,当碰到执行错误的命令时,将不再执行后面的命令。如果一直没有错误的,则执行完毕。

利用Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。 连续使用管道意味着第一个命令的输出会作为 第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。下面来看看管道是如何在构造一条Linux命令中得到应用的。

注意:

1、管道命令只处理前一个命令正确输出,不处理错误输出。

2、管道命令右边命令,必须能够接收标准输入流命令才行。

这条命令使用一个管道符“|”建立了一个管道。管道将rpm -qa命令的输出(包括系统中所有安装的RPM包)作为grep命令的输入,从而列出带有licq字符的RPM包来。

这条命令使用了两个管道,利用第一个管道将cat命令(显示passwd文件的内容)的输出送给grep命令,grep命令找出含有“/bin /bash”的所有行;第二个管道将grep的输出送给wc命令,wc命令统计出输入中的行数。这个命令的功能在于找出系统中有多少个用户使用bash。

区别是:

1、左边的命令应该有标准输出 | 右边的命令应该接受标准输入

左边的命令应该有标准输出 >右边只能是文件

左边的命令应该需要标准输入 <右边只能是文件

2、管道触发两个子进程执行"|"两边的程序;而重定向是在一个进程内执行

这些都是网上总结很多的,其实只要多加清楚用法,也一定有自己的一份不同描述。

以下内容首发自公众号“小汪Waud”。

本期介绍在Linux环境下的正则表达式及grep命令。

正则表达式(Regular Expression)是对字符串 *** 作的一种逻辑公式,就是用事先定义好的一些特定字符及这些字符的特定组合,组成一个“规则字符串”,这个字符串用来表达对字符串的一种过滤逻辑。

正则表达式基本上是一种表示法,只要程序支持这种表示法,该程序就可以用来作为正则表达式的字符串处理之用。如vi、grep、awk、sed等程序支持正则表达式,所以可以使用正则表达式的特殊字符来进行字符串的处理。但例如cp、ls等命令并不支持正则表达式,所以只能用自己的通配符。

正则表达式依照 不同的严谨度 分为:基础正则表达式和扩展正则表达式。

注意!

grep是一种强大的文本搜索工具,可以使用 正则表达式匹配模式 查找文件里符合条件的字符串,并打印出来。

有点类似于WORD里的查找功能。

grep支持三种正则表达式语法:Basic、Extended和perl兼容。 如果没有提供正则表达式类型,grep将搜索模式解释为基本的正则表达式。要将模式解释为扩展正则表达式,请使用-E。

查看grep的帮助文档,如下

基本用法

grep [OPTION]... PATTERN [FILE]...

高级用法

grep [-A] [-B] [--color=auto] "查找字符" [模式] [文件]

常用参数

首先通过cat命令查看samples.txt的内容,如下图

如果想检索以K为行首的行,通过以下命令即可得到

如果想检索以Z为行尾的行,通过以下命令即可得到

如果想检索三个字符其中前面为K,后面为D中间字符,为任意字符,通过以下命令即可得到

参考资料

https://www.runoob.com/linux/linux-comm-grep.html

https://www.bilibili.com/video/BV1Yy4y117SX?p=12


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7109058.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-01
下一篇2023-04-01

发表评论

登录后才能评论

评论列表(0条)

    保存