Linux 相当于 Cisco 的“开始”命令

Linux 相当于 Cisco 的“开始”命令

在 Cisco IOS 中,您可以使用各种内置工具过滤和操作命令的输出。其中一些有明确的 Linux 等效项。例如,“排除”和“包含”提供“grep -v”和“grep”行为。

“begin”命令将输出所有输入文本它匹配正则表达式模式。 Linux 是否有针对此类行为的等效方法?

答案1

当然,使用 awk 可以轻松完成:

$ echo -e 'a\nb\nc\nd' | awk '{if (p) {print;}} /^b$/ { print; p=1;}'
b
c
d

$ echo -e 'a\nb\nc\nd' | awk '{if (p) {print;}} /^b$/ { p=1;}'
c
d

这些也可以缩写为(感谢@manatwork):

$ echo -e 'a\nb\nc\nd' | awk '/^b$/{p=1} p'
b
c
d

$ echo -e 'a\nb\nc\nd' | awk 'p; /^b$/{p=1}'
c
d

将其转化为方便的 shell 脚本留给用户作为练习。

答案2

grep -A1000 search在每个匹配行之后给出 999 行输出。

答案3

使用less然后/进行搜索:

petrus@hive:/usr/bin$ ls -l | less
total 535796
-rwxr-xr-x 1 root   root        30244 2011-02-23 14:22 [
lrwxrwxrwx 1 root   root            8 2011-05-26 01:22 2to3 -> 2to3-2.7
-rwxr-xr-x 1 root   root           96 2011-04-11 21:07 2to3-2.7
[...]
-rwxr-xr-x 1 root   root         9588 2011-02-24 09:43 appres
-rwxr-xr-x 1 root   root         6930 2011-05-20 23:53 apr-1-config
:

现在输入/,“less”提示符 ( :) 将发生变化。如果我搜索“lsusb”:

-rwxr-xr-x 1 root   root         9588 2011-02-24 09:43 appres
-rwxr-xr-x 1 root   root         6930 2011-05-20 23:53 apr-1-config
/lsusb
lrwxrwxrwx 1 root   root           13 2011-05-26 01:24 lsusb -> ../sbin/lsusb
-rwxr-xr-x 1 root   root       114528 2010-11-24 18:16 ltrace
[...]

答案4

这在 sed 中相当简单:打印从匹配模式的第一行到最后一行 ( $) 的所有行。

sed -n '/pattern/,$p'

如果您想省略与模式匹配的行,请删除该行之前的所有内容(包括该行)。

sed '1,/pattern/d'

相关内容