小编WAF*_*WAF的帖子

grep 命令仅提取某些单词

我有一个大报告,其中有许多随机行显示的 IP 地址。所有 IP 地址都以 192.168 开头。我只想提取 IP 地址并获得如下所示的报告:

192.任何事.任何事.任何事

192.xx.xx.xx

192.xx.xx.xx

没有别的。我试过cat filename | grep -w 192 似乎得到了整条线。我只想要完整的 IP 地址。我感谢您可以与我分享的任何信息。

grep

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

Bash:文件中一行的路径或链接?

/path/to/fname#line1242
Run Code Online (Sandbox Code Playgroud)

有没有办法将文件中的特定行号作为路径名的一部分引用,或者以某种方式将链接打包到看起来/行为像路径名的行号?例如,将上面的字符串提供给同一文件系统的另一个用户,以便他们可以轻松打开我的文件“fname”并立即位于其中的第 1242 行。

我正在考虑类似于 HTML 锚点的行为,它可以包含在页面的 URI 中,然后表现得就像链接一样。也就是说,它们可以提供给同一文件系统的其他用户,并向这些用户指示文件中的给定行,默认情况下打开文件到该行。我意识到在 UNIX 中,唯一真正可以成为路径名一部分的东西可能是目录、文件和伪文件。但是,还有 glob、字符串扩展等,它们严格来说并不是路径名的一部分,但可以“舒适地”插入其中,而文件名可以被传递和引用,而不需要任何额外的命令。是否有一种内联方法可以模拟 UNIX 文件的锚点/链接行为?

我可以在我的“路径名”中包含命令替换和sed "1242p"某种自引用,但随后我不再处理路径名,而只是处理文件上的命令。想一想,那么我就不会链接,只是提取一行。我根本想不出链接到特定行的方法(不忽略文件的其余部分)。

GNU bash,版本 3.2.51

bash path hard-link files

6
推荐指数
1
解决办法
992
查看次数

什么类型的正则表达式支持(例如)负向后视?

抨击 GNU:

我正在使用一组find命令,其中大部分-regex用于进行匹配。每次我在正则表达式中尝试不同的功能时,我都必须循环浏览这些值,-regextype直到一个工作正常为止。在这种情况下,我特别需要一个支持负面后视的人。很难验证我对这个功能的测试的(零)结果,所以我想简单地参考一个列表,而不是重复不断增加的一系列测试。

我已经找到了Javascript和其他平台的许多参考不支持负回顾后,但我似乎无法找到那些中央的位置做。

很高兴在某处看到一个图表,列出了许多流行的正则表达式样式以及它们支持和不支持的功能,但我也找不到。

bash find gnu regular-expression

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

迭代 glob 模式,而不是其中的文件

我想对几束文件中的每一束执行相同的聚合操作,其中每一束都与一个 glob 模式匹配。我不想做的是将每个文件名分别通过管道传输到聚合函数中。

我的第一次尝试失败了,因为文件名在外循环中被打乱,将整个集合展平为一个平面列表,而不是将它们视为单独的批次:

for fileglob in /path/to/bunch*1 /path/to/bunch*2 ... ; do
  stat "$fileglob" | awk [aggregation]
done
Run Code Online (Sandbox Code Playgroud)

所以我*通过转义它从循环中隐藏了它,然后为函数取消了它:

for fileglob in /path/to/bunch*1 /path/to/bunch*2 ... ; do
  realglob=`echo "$fileglob" | sed 's/\\//g'`
  stat "$realglob" | awk [aggregation]
done
Run Code Online (Sandbox Code Playgroud)

一定有更好的方法。它是什么?

GNU bash,版本 3.2.51

bash shell-script wildcards for

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

标签 统计

bash ×3

files ×1

find ×1

for ×1

gnu ×1

grep ×1

hard-link ×1

path ×1

regular-expression ×1

shell-script ×1

wildcards ×1