我试图在一些共享类似目录结构但不在同一目录树中的文件中进行文本搜索,在 GNU/Linux 中。
我有一个 Web 服务器,其中有许多站点共享相同的树结构(Code Igniter MVC PHP 框架),所以我想在树下的特定目录中搜索每个站点,例如:
/srv/www/*/htdocs/system/application/
其中 * 是站点名称。从这些应用程序目录中,我想搜索所有树直到它的叶子,寻找一个 *.php 文件,里面有一些文本模式,假设“调试(”,不需要正则表达式。
我知道如何使用find和grep但我不擅长将它们结合起来。
我该怎么做?
提前致谢!
什么工具(最好用于 Linux)可以根据其 CSS 路径选择 HTML 元素的内容?
例如,考虑以下 HTML 文档:
<html>
<body>
<div class="header">
<h1>Header</h1>
</div>
<div class="content">
<table>
<tbody>
<tr><td class="data">Tabular Content 1</td></tr>
<tr><td class="data">Tabular Content 2</td></tr>
</tbody>
</table>
</div>
<div class="footer">
<p>Footer</p>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
什么命令行程序(例如,一种“cssgrep”)可以使用 CSS 选择器提取值?那是:
cssgrep page.html "body > div.content > table > tbody > tr > td.data"
Run Code Online (Sandbox Code Playgroud)
该程序会将以下内容写入标准输出:
Tabular Content 1
Tabular Content 2
Run Code Online (Sandbox Code Playgroud)
谢谢!
我发现了一个叫做使用 Find/Grep 在一天中的特定时间之间搜索文件的 SO
基于它和一个名为Grep 命令的 Unix SE来查找包含文本字符串的文件并移动它们,我最终得到:
find . -type f -mtime -20 | grep -v -e " \(0[012345]\|18\|19\|2[0123]\)" | xargs mv -t daytime/
Run Code Online (Sandbox Code Playgroud)
但它正在移动所有文件。我使用 Ubuntu 有什么不同吗?
我想要做的就是将上午 6 点到下午 6 点之间的所有文件移动到另一个目录。任何建议,将不胜感激。
当我使用grepor 时find,我总是对“权限被拒绝”和“没有这样的文件或目录”通知感到恼火,如下所示:
johndoe@johndoe-desktop:/$ grep -rnP 'YII_CORE_PATH' ./ | grep -v .svn
grep: ./lib/ufw/user6.rules: Permission denied
grep: ./lib/ufw/user.rules: Permission denied
grep: ./lib/init/rw/udev/watch/27: No such file or directory
grep: ./lib/init/rw/udev/watch/26: No such file or directory
grep: ./lib/init/rw/udev/watch/25: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我怎样才能避免它们并使它只看到相关数据,即我真正在寻找的东西?
我有一个类似 的日期2014-01-30 05:04:27 GMT,如果我运行date -d "2014-01-30 05:04:27 GMT",则输出在我服务器的时区 ( Thu Jan 30 16:04:27 EST 2014) 中。
通过使用 grep 和 cut,我从文件中提取了格林威治标准时间的日期。但是,我正在努力将其转换为我的当地时间。
例如:
grep "something" logfile.txt | grep "Succeeded" | cut -f1 -d'['
Run Code Online (Sandbox Code Playgroud)
输出: 2014-01-30 05:04:27 GMT
最后我可以添加什么,以将该输出传递给date -d?
尝试:
grep "something" logfile.txt | grep "Succeeded" | cut -f1 -d'[' | date -d
Run Code Online (Sandbox Code Playgroud)
grep "something" logfile.txt | grep "Succeeded" | cut -f1 -d'[' | date
Run Code Online (Sandbox Code Playgroud)
grep "something" logfile.txt | grep "Succeeded" | cut -f1 -d'[' …Run Code Online (Sandbox Code Playgroud) 我已经开始使用比 grep 快得多的 ack。但是使用 ack 我想搜索文件名而不是文件内容。有没有办法做到这一点?
我想找到包含在 Linux/MinGW/Cygwin 中的源文件(*.c、*.cpp、*.h),并在所有子目录中递归查找。
我的基本想法是使用findand grep。但是,构建一个可以检查给定文件名是 *.c、*.cpp 或 *.h 的正则表达式并不容易。你能帮我吗?
我有一个巨大的文本文件,它太大了,无法将整个文件分页到内存中。我需要对这个文本文件做的就是编辑第一行(它是一个 CSV 文件,我需要更改标题)。
有没有一种简单的方法可以在 bash 中做到这一点?
有什么方法可以交互式地grep,这意味着我有一堆来自某个地方的行,我想通过管道进行进一步处理,并且可以选择手动指定我想要的行?
考虑这个例子:
#Name Food Music
Adam Cake Rock
Bert Fruit Folk
Caesar Cake Rock
Doris Cake Folk
Emil Fruit Rock
Francis Fruit Folk
Gertrud Cake Rock
...
Run Code Online (Sandbox Code Playgroud)
我可以使用这个文件并使用类似的行过滤它
cat people.txt | grep -v "^#" | grep "^.*Fruit.*Folk"
Run Code Online (Sandbox Code Playgroud)
...让所有人都受邀参加素食民俗派对。当我进一步自动化时:
cat people.txt | grep -v "^#" | grep "^.*Fruit.*Folk" | ??? | peopleInviterScript
Run Code Online (Sandbox Code Playgroud)
...我想???在管道中添加一些让我可以在发送邀请之前选择/取消选择人员的选项。
在 bash/zsh 中是否已经有这样一个我不知道的工具?
我正在一个包含数百个 PHP 文件的站点上搜索类声明。如何使用grep在当前文件夹和子文件夹中执行此操作?
我测试cd了文件夹,然后像
grep -r 'class MyClass' *.php
Run Code Online (Sandbox Code Playgroud)