当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell:处理文本或如何从文本输出中获取每 x 行(修剪、替换、分割)

作者:精品下载站 日期:2024-12-14 07:24:02 浏览:14 分类:玩电脑

PowerShell:处理文本或如何从文本输出中获取每 x 行(修剪、替换、分割)


我一直在与文字斗争。现在我真的很讨厌文字。我喜欢物体。但有时你无法避免这些来自其他地方的非面向对象的角色。这篇博文是关于文本及其格式的。我们将重点关注修剪、替换和拆分方法。我们将使用一个示例:arp -a。

起点 (arp -a)

我们从哪里开始?正如所承诺的,我们将使用古老的 arp 命令。我们来看看arp。其结果是纯文本。

[玩转系统] PowerShell:处理文本或如何从文本输出中获取每 x 行(修剪、替换、分割)

假设我们只想列出 IP 地址,而不列出其他内容。它应该看起来像这样:

[玩转系统] PowerShell:处理文本或如何从文本输出中获取每 x 行(修剪、替换、分割)

如何开始?首先,我们将使用修剪方法删除所有空格。

修剪

Trim 可以帮助您删除开头和结尾处所有烦人的空格。我们开始做吧。


$a=arp -a

$b=$a.Trim()

[玩转系统] PowerShell:处理文本或如何从文本输出中获取每 x 行(修剪、替换、分割)

好一个。与以前相比,它们都消失了。

[玩转系统] PowerShell:处理文本或如何从文本输出中获取每 x 行(修剪、替换、分割)

跳过

我们的下一部分是删除前三行。

[玩转系统] PowerShell:处理文本或如何从文本输出中获取每 x 行(修剪、替换、分割)

这需要我们跳过。让我们继续使用 Select-Object 删除前 3 行。


$c=$b | Select-Object -Skip 3

最后他们走了。

[玩转系统] PowerShell:处理文本或如何从文本输出中获取每 x 行(修剪、替换、分割)

现在我们已经有了很好的基础。

将所有空格替换为一个空格

让我们继续删除所有不必要的空格。

[玩转系统] PowerShell:处理文本或如何从文本输出中获取每 x 行(修剪、替换、分割)

通过这个简单的替换语句,我们将所有空格 (\s+) 替换为一个空格。


$d= $c -replace '\s+', ' '

[玩转系统] PowerShell:处理文本或如何从文本输出中获取每 x 行(修剪、替换、分割)

分裂

在这个阶段我们到达了分裂。我们所需要的只是包含所有值的一行。


$e=$d -split(' ')
$e

[玩转系统] PowerShell:处理文本或如何从文本输出中获取每 x 行(修剪、替换、分割)

但我们只想要 IP 地址。这就是为什么我们需要每隔三行。现在我们进入最后一个部分,也是要求最高的部分:获取每第三行。

每第三行循环一次

我们的目标很明确。仅列出每第 3 行。

[玩转系统] PowerShell:处理文本或如何从文本输出中获取每 x 行(修剪、替换、分割)

我们从零开始。然后我们定义循环的结束。然后我们定义每第三行。


$f=for ($i=0;$i -lt $e.count;$i+=3) {$e[$i]}
$f

[玩转系统] PowerShell:处理文本或如何从文本输出中获取每 x 行(修剪、替换、分割)

太好了,我们已经达到了我们的目标。

全部一起

为了切入主题,请以稍微不同的顺序一次性完成所有内容。


$a=arp -a | Select -Skip 3
$b=$a.Trim() -replace '\s+',' ' -split '\s'
$c=for ($i=0;$i -lt $b.count;$i+=3) {$b[$i]}
$c

[玩转系统] PowerShell:处理文本或如何从文本输出中获取每 x 行(修剪、替换、分割)

另一个最后的例子(quser)

如何从quser获取登录用户?我正在谈论这个。又是简单的文字。

[玩转系统] PowerShell:处理文本或如何从文本输出中获取每 x 行(修剪、替换、分割)

我首先想提的是,获取用户名的方法有数百种甚至数千种。这是我的方法,与上面所示的非常相似。

它并不像上面显示的那么困难。我们所需要的只是用户名。没有循环。我们先来修剪一下。用户名排在第 8 位。


$a=quser
$b=$a.trim() -replace '\s+',' ' -replace '>','' -split ' '
$b[8]

[玩转系统] PowerShell:处理文本或如何从文本输出中获取每 x 行(修剪、替换、分割)

今天就这样。不用担心处理文本?

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯