相关疑难解决方法(0)

使用grep --exclude/ - include语法不要浏览某些文件

我正在寻找foo=目录树中的文本文件中的字符串.它在一台普通的Linux机器上,我有bash shell:

grep -ircl "foo=" *
Run Code Online (Sandbox Code Playgroud)

在目录中还有许多匹配"foo ="的二进制文件.由于这些结果不相关并且减慢了搜索速度,我希望grep跳过搜索这些文件(主要是JPEG和PNG图像).我该怎么办?

我知道有--exclude=PATTERN--include=PATTERN选项,但模式格式是什么?grep的手册页说:

--include=PATTERN     Recurse in directories only searching file matching PATTERN.
--exclude=PATTERN     Recurse in directories skip file matching PATTERN.
Run Code Online (Sandbox Code Playgroud)

搜索grep include,grep include exclude,grep exclude和variants没有找到任何相关内容

如果有一种更好的方法只在某些文件中进行grepping,我就是全力以赴; 移动违规文件不是一种选择.我不能只搜索某些目录(目录结构很乱,随处可见).另外,我无法安装任何东西,所以我必须使用常用工具(如grep或建议的查找).

unix shell search command-line grep

757
推荐指数
12
解决办法
61万
查看次数

如何使用Bash测试文件中是否存在字符串?

我有一个包含目录名称的文件:

my_list.txt :

/tmp
/var/tmp
Run Code Online (Sandbox Code Playgroud)

我想在我添加目录名之前检查Bash,如果该名称已存在于文件中.

string bash file

304
推荐指数
9
解决办法
54万
查看次数

如何使用grep匹配同一行中的多个字符串?

我试图用来grep匹配包含两个不同字符串的行.我尝试了以下但是这匹配包含string1 string2的行,这不是我想要的.

grep 'string1\|string2' filename
Run Code Online (Sandbox Code Playgroud)

那么我如何grep只匹配包含两个字符串的行?

regex linux string grep

204
推荐指数
9
解决办法
37万
查看次数

如何使用grep查找多行的模式?

我想找到按顺序有"abc"和"efg"的文件,这两个字符串在该文件的不同行上.例如:包含内容的文件:

blah blah..
blah blah..
blah abc blah
blah blah..
blah blah..
blah blah..
blah efg blah blah
blah blah..
blah blah..
Run Code Online (Sandbox Code Playgroud)

应该匹配.

regex grep

190
推荐指数
10
解决办法
25万
查看次数

如何在文件中搜索多行模式?

我需要找到包含特定字符串模式的所有文件.想到的第一个解决方案是使用带有xargs grep的find管道:

find . -iname '*.py' | xargs grep -e 'YOUR_PATTERN'
Run Code Online (Sandbox Code Playgroud)

但是如果我需要找到跨越多行的模式,我就会被卡住,因为vanilla grep找不到多行模式.

linux command-line grep find pcregrep

113
推荐指数
8
解决办法
12万
查看次数

grep在同一行上存在2个单词

如何grep包含两行输入字的行?我正在寻找包含两个单词的行,我该怎么做?我试过像这样的管子:

grep -c "word1" | grep -r "word2" logs
Run Code Online (Sandbox Code Playgroud)

它只是在第一个管道命令后卡住了.为什么?

grep

107
推荐指数
6
解决办法
22万
查看次数

是否可以使用sed可靠地转义正则表达式元字符

我想知道是否有可能编写一个100%可靠的sed命令来转义输入字符串中的任何正则表达式元字符,以便它可以在后续的sed命令中使用.像这样:

#!/bin/bash
# Trying to replace one regex by another in an input file with sed

search="/abc\n\t[a-z]\+\([^ ]\)\{2,3\}\3"
replace="/xyz\n\t[0-9]\+\([^ ]\)\{2,3\}\3"

# Sanitize input
search=$(sed 'script to escape' <<< "$search")
replace=$(sed 'script to escape' <<< "$replace")

# Use it in a sed command
sed "s/$search/$replace/" input
Run Code Online (Sandbox Code Playgroud)

我知道有更好的工具可以使用固定字符串而不是模式,例如awk,perlpython.我想证明是否有可能sed.我会说让我们专注于基本的POSIX正则表达式,以获得更多乐趣!:)

我已经尝试了很多东西,但任何时候我都能找到一个打破了我的尝试的输入.我认为保持它是抽象的,因为script to escape不会导致任何人走错方向.

顺便说一下,讨论在这里提出来了.我认为这可能是收集解决方案的好地方,可能会破坏和/或详细说明.

regex sed

54
推荐指数
2
解决办法
1万
查看次数

strstr()表示非null终止的字符串

如何在C 中对计数字符串(即空终止)进行就地等效?strstr()

c string indexof null-terminated

27
推荐指数
3
解决办法
1万
查看次数

在 xcode Colors asset 中通过十六进制代码搜索颜色

如果资源中已经存在像 #4D4D4D 这样的颜色,我如何在 Xcode 中搜索?我尝试通过十六进制代码进行搜索,但没有显示任何内容。

xcode assets colors

9
推荐指数
1
解决办法
2740
查看次数

egrep AND运算符

我知道egrep有一个非常有用的方法,通过使用以下两个表达式:

egrep "pattern1.*pattern2"|egrep "pattern2.*pattern1" filename.txt|wc -l
Run Code Online (Sandbox Code Playgroud)

但是,在搜索三个表达式时,有一种简单的方法可以使用egrep的AND运算符,因为随着添加额外表达式,排列会呈指数增长.

我知道另一种方式,sort|uniq -d 但我正在寻找一个更简单的解决方案.

编辑:

我目前的搜索方式将产生五个总结果:

#!/bin/bash
pid=$$
grep -i "angio" rtrans.txt|sort|uniq|egrep -o "^[0-9]+ [0-9]+ " > /tmp/$pid.1.tmp
grep -i "cardio" rtrans.txt|sort|uniq|egrep -o "^[0-9]+ [0-9]+ " > /tmp/$pid.2.tmp
grep -i "pulmonary" rtrans.txt|sort|uniq|egrep -o "^[0-9]+ [0-9]+ " > /tmp/$pid.3.tmp
cat /tmp/$pid.1.tmp /tmp/$pid.2.tmp|sort|uniq -d > /tmp/$pid.4.tmp
cat /tmp/$pid.4.tmp /tmp/$pid.3.tmp|sort|uniq -d > /tmp/$pid.5.tmp
egrep -o "^[0-9]+ [0-9]+ " /tmp/$pid.5.tmp|getDoc.mps > /tmp/$pid.6.tmp
head -10 /tmp/$pid.6.tmp

mumps@debianMumpsISR:~/Medline2012$ AngioAndCardioAndPulmonary.script 
1514 Structural composition of central pulmonary arteries. Growth potential after …
Run Code Online (Sandbox Code Playgroud)

bash grep

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

grep ×6

regex ×3

string ×3

bash ×2

command-line ×2

linux ×2

assets ×1

c ×1

colors ×1

file ×1

find ×1

indexof ×1

null-terminated ×1

pcregrep ×1

search ×1

sed ×1

shell ×1

unix ×1

xcode ×1