grep用法 linux命令grep用法

莫娜号 1

Linux中使用grep命令,查询多个字符串

grep 搜索同时满足多个关键字和满足任意关键字

grep用法 linux命令grep用法grep用法 linux命令grep用法


grep用法 linux命令grep用法


1、 grep -E "word1|word2|word3" file.txt

满足任意条件(word1、word2和word3之一)将匹配。

这样也可以

grep 'wo从test.c中查找hello和Hellord1/|word2|word3' 文件名

错误的:

grep 'word1|word2|word3'

2、 grep word1 filBB123e.txt | grep word2 |grep word3

必须同时满足三个条件(word1、word2和word3)才匹配。

为什么需要加-E

如何使用grep筛选出含有A或者B字符的行

me@ubuntu:grep$ cat test.txt

aa123

AA123AABB123

me@ubunt内容返回为u:grep$ grep -e 'AA' -e 'BB' ./test.txt

AA123

在linux中有文件aa.txt,如何使用grep工具匹配出

正则表达式分为 基本正则表达式(Basic REGEXP) 与 扩展正则表达式(Extended REGEXP) 。

在linux中有文件aa.txt,使用grep工具/XXX/XXX匹配出的步骤如下:

1、在Linux中,可以使用grep工具来匹配文本文件中的字符串。如果要匹配文件aa.txt中的某个字符串,可以使用以下命令:grep"要匹配的字符串"aa.txt。

2、其中,“要匹配的字符串”是要查找的字符串,可以是一个单词、短语或正则表达式。aa.txt是要查找的文件名。要在aa.txt文件中查找字符串"helloworld",可以使用以下命令:grep"helloworld"aa.txt。

3、aa.txt中包含了"helloworld",grep将输出所有包含该字符串的行。没有找到匹配的字符串,grep将不会输出任何内容。

使用linux命令grep查找日期段的文件并统计

而在正则表达式中,元字符的那么打印个字段时 awk '{print 0的话,则代表打印所有字段特定意义为:

这个用find更好一些吧,find有一个按时间筛选的功能, find /u/bill -amin +2 -amin -6 具体用法可以见如下网址的: #Age-Ranges使用linux命令grep查找日期段的文件并统计

linux三剑客的基本使用——grep、sed、awk

cat

grep、sed、awk是linux功能非常强大的三个命令,grep是查找过滤文本,sed是对文本进行编辑替换,awk是对文本进行分析报告。

最简单的理解就是找什么东西用grep,想修改什么内容用sed,想格式化内容用awk。

创建一个文件名为grep_text.txt的文件,并放入内容:

SillyMadman is both a madman and a fool.

Everyone agrees with this sentence.

我要查找在grep_text.txt文件里有Silly的行

命令是: grep Silly grep_text.txt

会返回内容:SillyMadman is both a madman and a fool.

也可以带以下参数,这些我认为可能容易用到的参数,其它的参数需要另行查找

文档,比如可以使用正则进行匹配。

内容相关的

-A, --after context=NUM显示所在行之后的行数

-C, --context=NUM打印输出上下文的行数

-i, --忽略大小写区分

-v, --过滤掉匹配的内容

输出内容相关的参数

-n, --行号打印带有输出行的行号

比如,我要查找在grep_text.txt文件里不区分大小写查找sillymadman,并显示行号和匹配文本的下一行,那么我可以用以下命令查找

grep sillymadman grep_text.txt -i -n -A1

1:SillyMadman is both a madman and a fool.

2-Everyone agrees with this sentence.

总体而言grep的使用方式就是

grep [参数...](查找的内容) (文件名)

grep也经常搭配管道符号"|"使用,比如我要查询某程序的进程,并去掉查找进程本身,那么命令为

ps -ef | grep program_name | grep -v grep

再创建一个文件名为sed_text.txt的文件,并放入内容:

SillyMadman is both a madman and a fool.

Everyone agrees with this sentence.

我想要在行下面添加一句:woshishazi

命令是:sed '1awoshishazi' sed_text.txt

返回内容为:

SillyMadman is both a madman and a fool.

woshishazi

Everyone agrees with this sentence.

但是以上这个命令不会修改原文件,如果需要,需要加上-i

sed -i '1awoshishazi' sed_text.txt

上面a是代表append,从指定行后面新的一行添加数据,还有其他作

作有以下这些

a :从下面一行新增

i :从上面一行插入,

d :删除

c :整行替换

p :打印

s :对指定内容进行替换

下面稍微举下例:

a: sed '1awoshishazi' sed_text.txt 从行后面添加

i: sed '1iwoshishazi' sed_text.txt 从行入

d: sed '1d' sed_text.txt 删除行

c: sed '1cwoshishazi' sed_text.txt 替换行内容为woshishazi

p: sed -n '1p' sed_text.txt 打印行,一般搭配-n使用,其他内容就不会再展示

sed的参数为 '[行]s/要被替换的内容/新的内容/g'

行是一个可选项,可以选择具体的行进行替换

g代表替换所有匹配到的内容,也可以改为数字,表示第几次匹配到时进行替换

sed 'sSillyMadmanshafengzig' sed_text.txt ,将所有SillyMadman替换为shafengzi

输出结果为:

Everyone agrees with this sentence.

再创建一个文件名为awk_text.txt的文件,并放入内容:

1 a

3 c

4 d

5 f

以空白符作为分隔符这个文本相当于每一行有两个字段。

awk -F: '{print $1}' awk_text.txt,以“:”作为作为分隔符

那么返回内容就为

1 a

3 c

4 d

5 f

然后还可以对前面加上一个正则对行进行匹配内容

awk '/a/{print 2 ~ /a/){print $1}' awk_text.txt

返回内容为

awk默认以空白符作为分隔符,也可以指定分割符通过-F1

unix 下面求 1)LS命令查找模糊数据,2)GREP 命令的用法。怎么用MORE

-w,--匹配查找的整个单词

1.

相当于只有一列或者说一个字段

ls

在shell中进行模糊查找的话就是使用通配符了,如ls

.c

2.

'[Hh]ello'

test.c

3.

more就是分页查看,可以直接more

file也可以

file|more来分页查看文件file。

4.

有问题,找男人,多难过查查man

page就熟悉了。

linux中怎么用grep提取同时满足两个条件的行?

2 b

grep "条件1"|grep "条件2"使用管道,grep两次就可以了。

shafengzi is both a madman and a fool.

如果解决了您的问题请采纳!

如果未解决请继续追问

两个条件都要满足:grep tiaojian1 test.txt |grep tiaojian2

两个条件满足其中一个即可:egrep "tiaojian1|tiaojian2" test.txt egrep 可以看着是grep的扩展,参数-e支持正则匹配

egrep -e "tiaojian1|tiaojian2" test.txt

grep '条件1|条件2'

linux 查找一个中文件是否有该字符串

过滤内容相关的参数:

find

-type

f|

xargs

grep

"XXXX"

结果形式

全路径文件名:字符串

find

-type

f-exec

grep

"Xgrep就是根据一个正则表达式查找匹配的行,比如grepXX"

{}

;

结果形式

包含字符串的文件内容

grep 命令与正则表达的协同使用

UpDate 2018-10-22

Authos:这个相对复杂一点需要详细说明一下r unnam3d

Mail in.zhang@foxmail

Tip Please feel free to contact me via mail above for any confusion or suggestions

grep(Global Research)亦即根据某一个 模式(过滤规则) 去全局性的搜索文本,并将符合模式的文本行显示出来。grep其本身的意义是做部分匹配,也就是说,当你使用grep进行搜索的时候,只要某一行的内容里部分匹配,grep就会将结果显示出来。而这里的 模式(Pattern) 是指,文本字符和正则表达式的元字符组合而成的匹配条件。简而言之,grep就是使用基本正则表达式定义的模式来过滤文本的命令。

not:grep 默认工作在 贪婪模式 下,也就是在匹配的过程中,会尽可能长的匹配,能匹配到哪就匹配到哪。

usage: grep [options] PATTERN [FILE...]

无论是哪一种,正则表达式都含义几个特性:

正则表达式里都有一些元字符,这些元字符不表示其本身的意义,而是在正则表达式中有其特定的意义。我在 bash特性简单梳理 一文中提及过文件名通配(globbing)。

在文件名通配中,这些元字符的特定-B, --before context=NUM显示所在行之前的行数意义如下:

除了这些特定的元字符的意义外,正如文件通配符中所描述的字符,正则表达式同样支持字符:

位置锚定,就是在进行搜索的时候,所搜索的字符必须出现在特定的位置。

分组的意义,通俗的来讲,就是将一捆字符作为一个整体来看待,用 () 来表示。

例如: (ab) 将ab作为一个整体,星号修饰的ab这一个整体。而ab仅仅修饰b一个字符

$ grep '(ab)' test.txt

上面这个命令就表示在文件 test.txt 中匹配ab这一整体,它可以匹配到ab, abab, ababab这样。

后向引用

与分组搭配使用的还有 后向引用 。

扩展正则表达式与正则表达式在很多地方的意义都是相同的。例如:

NOTICE :

除了与正则表达式相同意义的地方,扩展表达式也有其独特的地方:

最后修改时间:
王者荣耀怎么按名字排列 王者荣耀名字上下一排怎么弄
上一篇
lol换肤软件哪个好2023(lol换肤软件哪个好
下一篇

相关文章