小编pau*_*ler的帖子

特定文件类型中单词的递归 grep

我想要一个命令行命令来在文件系统中搜索特定单词的所有 shell 脚本,所以我在工作中四处询问并得到以下解决方案:

grep word `find / -name \*.sh 2>/dev/null`
find / -name "*.sh" 2>/dev/null | xargs grep word
Run Code Online (Sandbox Code Playgroud)

但是,我对命令行不太熟悉,因此这两种解决方案对我来说似乎都不透明。我更喜欢做一些看起来像的事情:

ls -r *.sh | cat | grep -H word
Run Code Online (Sandbox Code Playgroud)

但是似乎您无法将文件名通过管道传输到 cat (至少我认为这就是问题所在)。

什么是最清晰的解决方案?其次,最有效的解决方案是什么?

编辑:我需要知道在哪个文件中找到了这个词,以便我可以修改脚本。

command-line grep

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

sed 模式匹配

我最近问工作中的某人如何获取 ipcs -qa 的输出并使其以空格分隔,以便我可以解析它/将其存储在数据库中以进行监控。他给了我这个:

ipcs -qa | sed 's/ [ ]* / /g'
Run Code Online (Sandbox Code Playgroud)

它有效,但为什么呢?他是如何构造那个模式字符串的?我在哪里可以找到有关如何构建它们的文档?我检查了手册页,但它非常不透明。

sed regular-expression

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

标签 统计

command-line ×1

grep ×1

regular-expression ×1

sed ×1