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

[玩转系统] 如何使用PowerShell Cat快速显示文件

作者:精品下载站 日期:2024-12-14 13:10:17 浏览:15 分类:玩电脑

如何使用PowerShell Cat快速显示文件


您是否正在考虑显示文件内容以实现自动化或故障排除目的?基于另一个文件的内容编辑和管理文件怎么样?不用担心; PowerShell cat 是您武器库中的一个出色工具。

在本教程中,您将学习利用 PowerShell cat 的多功能性以多种方式显示文件内容。

先决条件

本教程将是一个实践演示。如果您想继续操作,您只需要一台装有 Windows PowerShell 5.1 或 PowerShell 7 及更高版本的计算机。本文使用带有 PowerShell 5.1 的 Windows 10 计算机

设置教程目录

为了在学习本教程时获得更一致的体验,请通过执行以下步骤准备教程目录。

1. 打开 PowerShell 窗口并通过执行以下命令创建一个新文件夹 c:\PsCat。这个新文件夹将是您在本教程中的工作目录。

# Create the C:\PsCat folder and change the working directory
New-Item -Type Directory -Path C:\PsCat -Force ; Set-Location C:\PsCat

[玩转系统] 如何使用PowerShell Cat快速显示文件

2. 接下来,运行以下命令创建三个具有不同内容的示例文件。

# Create File1.txt containing 5 lines
1..5 | ForEach-Object { "File1.txt: Line $_" } | Out-File File1.txt
# Create File2.txt containing 10 lines
1..10 | ForEach-Object { "File2.txt: Line $_" } | Out-File File2.txt
# Create File3.txt containing 100 lines
1..100 | ForEach-Object { "File3.log: Line $_" } | Out-File File3.log

3.最后列出教程目录内容。

# List the current directory contents
Get-ChildItem

您应该看到三个文件;文件1.txt、文件2.txt 和文件3.log。

[玩转系统] 如何使用PowerShell Cat快速显示文件

揭晓 PowerShell Cat 命令

使用 Linux 的人可能熟悉 cat 作为读取文件内容的命令。 PowerShell cat 命令具有相同的功能。但请注意,PowerShell cat 只是 Get-Content cmdlet 的别名。

除了 cat 之外,Get-Content 命令还有其他别名,您可以通过运行以下命令找到它们。

Get-Alias -Definition Get-Content

如下所示,gctype 以及 cat 也是 Get-Command 的别名。

[玩转系统] 如何使用PowerShell Cat快速显示文件

为了保持一致性,本教程将仅使用 cat 作为 Get-Content 别名。

使用 PowerShell Cat 显示文件的内容

PowerShell cat 的主要和最基本的用法是在屏幕上显示文件的内容。运行 cat 命令,后跟文件名将告诉命令输出文件的内容,仅用于显示。

运行以下命令读取File1.txt文件并将数据输出到屏幕上。

cat File1.txt

您应该在屏幕上看到 File1.txt 的内容,如下所示。

[玩转系统] 如何使用PowerShell Cat快速显示文件

从顶部显示线条

读取或显示文件的全部内容并不总是实用,尤其是在处理数百行左右的大文件时。

阅读文件的前几行可能有助于确定该文件是否是您所需要的。 PowerShell cat 允许您显示文件中的特定行或行以便快速查看。

要显示从文件开头开始的行集合,请指定 -TotalCount 参数,后跟行数。 -TotalCount 参数还有别名 -Head-First,您可以互换使用。

运行以下命令以显示 c-text.txt 中的前五行。

-TotalCount 参数也有别名,即 -Head 和 -First,您可以互换使用。

cat File2.txt -TotalCount 5

结果将仅显示前五行,如下所示。

[玩转系统] 如何使用PowerShell Cat快速显示文件

从底部显示线

另一方面,您还可以通过指定 -Tail 参数或其别名(即 -Last)从底部查看文件的内容。此方法在使用日志文件进行故障排除时很常见,通常只知道程序崩溃之前的最后一组条目。

使用-Tail参数执行cat可以查看File2.txt的最后五行。

cat File2.txt -Tail 5

终端中的输出应类似于以下结果,显示从底部开始的最后五行。

[玩转系统] 如何使用PowerShell Cat快速显示文件

将内容合并到新文件中

您可以将命令中的标准重定向到 PowerShell 中的新文件,而不是简单地在屏幕上显示内容。此外,PowerShell猫可以一次读取多个文件,这使得合并内容成为可能。

1. 运行cat命令连接File1.txt和File2.txt,如下所示。输出重定向 (>) 将命令输出发送到名为 c-text.txt 的新文件。

cat File1.txt,File2.txt > Merge1.txt

您还可以通过将 cat 输出通过管道传输到 Out-File 而不是使用重定向运算符 (>) 来实现相同的结果。

cat File1.txt,File2.txt | Out-File Merge1.txt

2. 再次执行cat,显示新的Merge1.txt文件的内容,如下所示。

cat Merge1.txt

下面的屏幕截图应该与屏幕上的输出类似。如您所见,您已成功将 File1.txt 和 File2.txt 文件的内容合并到新的 Merge1.txt 文件中。

[玩转系统] 如何使用PowerShell Cat快速显示文件

3.最后,删除Merge1.txt以保留教程目录中的原始文件集。

Remove-Item Merge1.txt

将一个文件的内容附加到另一个文件

您可以使用 Linux cat 命令执行的另一件事是将一个文件的内容附加到另一个文件,而不是覆盖该文件或创建新文件。

以下是在 PowerShell 中将内容附加到文件的两种方法。第一种方法将 PowerShell cat 输出 (|) 通过管道传输到 Add-Content cmdlet。第二种方法使用双输出重定向符号 (>>)。

1. 运行以下任意命令,结果都是一样的。

# PowerShell cat with Add-Content
cat File1.txt | Add-Content File2.txt

# PowerShell cat with double redirection symbol (append)
cat File1.txt >> File2.txt

2. 执行以下命令,确认File2.txt文件添加的内容。

cat File2.txt

在文件的末尾,您应该看到 File1.txt 的内容,类似于下图。

[玩转系统] 如何使用PowerShell Cat快速显示文件

3. 现在您已经演示了如何将内容附加到现有文件,请运行以下命令以使用其原始内容覆盖教程文件 File2.txt。

# Overwrite File2.txt containing 10 lines
1..10 | ForEach-Object { "File2.txt: Line $_" } | Out-File File2.txt

过滤文件

PowerShell cat 接受通配符和模式作为位置输入。当存在混合类型或文件名并且您想要过滤、包含或排除项目时,此功能会派上用场。

显示所有文件

您当前的工作目录包含三个文件,两个 *.txt 和一个 *.log。要显示此目录中每个文件的内容,请在路径末尾指定星号 (*) 通配符。

cat .\*

您的终端应该快速显示所有文件的内容。为了更好地演示,下面的动画降低了速度。

[玩转系统] 如何使用PowerShell Cat快速显示文件

显示具有特定文件扩展名的文件

如果您只需要读取具有特定文件扩展名的文件怎么办?您可以通过多种方式执行此操作。例如,您只需要读取*.txt文件。第一种方法是将通配符应用于输入路径。运行以下命令读取所有扩展名为 *.txt 的文件。

cat *.txt

[玩转系统] 如何使用PowerShell Cat快速显示文件

另一种方法是指定 -Ininclude 参数,后跟通配符模式。运行以下命令可读取文件夹中的所有文件,但仅包含扩展名为*.txt的文件。

cat .\* -Include *.txt

[玩转系统] 如何使用PowerShell Cat快速显示文件

过滤与排除

添加 -Exclude 参数,而不是指定要包含的文件。例如,运行以下代码可过滤除 File2.txt 之外的所有扩展名为 *.txt 的文件。

cat .\* -Filter *.txt -Exclude File2.txt

如下所示,即使 File2.txt*.txt 过滤器匹配,PowerShell cat 也会忽略它,因为文件名位于 -排除 列表。

[玩转系统] 如何使用PowerShell Cat快速显示文件

对输出进行分页

当您运行 cat 显示大文件时,会产生快速移动的文本流,仅在到达底部后才会停止。此行为对于读取文件内容没有太大帮助。

为了便于在屏幕上读取大文件,您可以对输出应用分页。分页允许您仅查看适合窗口的内容。

您可以通过将 PowerShell cat 输出通过管道传输到内置 more 函数或 Out-Host cmdlet 来实现分页。

例如,运行以下命令以显示分页的 File3.log。任一命令都会产生相同的结果和交互选项。

cat File3.log | more
# OR
cat File3.log | Out-Host -Paging

结果仅显示适合您当前窗口大小的内容。

[玩转系统] 如何使用PowerShell Cat快速显示文件

[玩转系统] 如何使用PowerShell Cat快速显示文件

此时,您可以选择三种交互方式。

  • SPACE 显示下一个整页。
  • 按回车键 (CR) 或 Enter 显示以下行。
  • q退出分页。

结论

恭喜!到目前为止,您已经学会了使用 cat 在 PowerShell 中显示文件。 PowerShell cat 是 Get-Content 的别名,是一种多功能工具。

使用 PowerShell cat 可以实现比本教程所涵盖的更多内容。对于下一步,请进一步扩展您对 Get-Content 的了解,这次是作为 Tail 的等效项。

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

取消回复欢迎 发表评论:

关灯