当我运行一些 bash 命令时,它返回2..n文本行(n每次都不同,可能包含空行)。
如何过滤输出以显示跳过第 1 行和第 2 行的结果?
例如
$ my_command
file1
file2
file3
file3
$ my_command | some_filter
file3
file4
Run Code Online (Sandbox Code Playgroud) 我想运行grep -r pattern ./但不递归地遍历子目录。当我删除 -r 标志时,我的终端中没有任何输出。我应该使用什么标志来仅对当前目录中的文件中的模式进行 grep?
我有一个 find/grep 命令用于搜索我的项目的代码库,因此:
find folder1 folder2 folderetc -print | awk '{print "\""$0"\""}' | xargs grep -n "search-string"
Run Code Online (Sandbox Code Playgroud)
经常让我恼火的是缩小的 javascript 和 css 文件,它们将所有内容都打包成一行(由于可能错误地认为删除换行符将使下载 javascript 文件的速度明显更快)。对于这些打包或缩小的文件,总会有一个非打包版本,我想在我的结果中看到它。我从不想看到打包版本,因为它只会导致屏幕和屏幕上出现无法读取的垃圾。
没有系统的方法可以告诉 grep 避免缩小或打包文件,因为没有命名约定。但我突然想到我可以过滤掉超过 400 个字符的结果。有没有办法用 grep(或其他东西?)
是否可以在具有特定扩展属性的 linux 操作系统中搜索文件,如下所示: ---S--l---
---S--l--- 1 root root 0 Mar 1004:25/opt/csTuner/iba/wys/tuer_lolk
Run Code Online (Sandbox Code Playgroud)
权限中的S是什么:
S - 更改同步写入磁盘;这相当于应用于文件子集的“同步”挂载选项。
我的目标是搜索同步写入磁盘的文件。
前几天我在 RHEL7.1 系统上,我想在所有 systemd 单元文件所在的 /usr/lib/systemd/system 目录中搜索特定词。我像往常一样使用 grep 命令。看看发生了什么:
# cd /usr/lib/systemd/system
# grep After *
grep: invalid option -- '.'
Usage: grep [OPTION]... PATTERN [FILE]...
Try 'grep --help' for more information.
Run Code Online (Sandbox Code Playgroud)
然后,我尝试了 RHEL7.0、RHEL7.2、RHEL7.3 并得到了相同的结果。如果我在任何其他目录中使用 grep 命令,一切正常。谁能告诉我为什么我会有这种奇怪的行为?
grep ×5
bash ×2
find ×2
attributes ×1
linux ×1
permissions ×1
pipe ×1
systemd ×1
text ×1
ubuntu ×1