powershell - 如何删除空格并仅显示文本(如 awk)?
问题描述
有一个 Linux 脚本正在获取 docker 卷并显示卷匹配字符串。
docker volume ls | grep -i $volname | awk '{print $2}'
我需要将此脚本转换为在 Windows 环境中工作。所以PowerShell是我的选择。Select-String
或多或少像grep
.
docker volume ls | Select-String $volname
awk
但在 PowerShell中没有等价物。所以我尝试使用空格进行拆分:
$volList = docker volume ls |
Select-String "winvolume" |
foreach { $_ -split " " }
但它在数组中有许多空元素(13 个空元素)。我需要删除所有空元素,并且只有带有文本的元素。如何在 PowerShell 中实现这一点?
解决方案
Select-String
生成MatchInfo
对象,您需要首先从中扩展相关信息。请改用 PowerShell 运算符。
((docker volume ls) -match $volname -split ' +')[1]
在表达式处拆分' +'
将连续的空格视为单个分隔符,就像这样awk
做一样。
推荐阅读
- sybase - 如何将 Sybase 中的提取 DDL 授予特定用户?
- python - PYTHON 3X - python3x 中的 p.stdin.write() 等效项
- postgresql - 获取 SQL 状态:25P02 尝试使用来自另一个表的数据更新表
- c# - 如何使用 Acr.UserDialogs 显示带有消息的警报
- docker - 将 docker 容器链接到外部公共 IP
- python - Python多处理返回队列实际上不是空的
- c# - 如果多个页面看起来几乎相同,如何避免代码重复?
- acumatica - 第一次保存记录后如何更新和保存记录?
- csv - NETLOGO:在一个目录中找到所有的csv文件并读入
- .net - 如何为 DataGridRow 和前一个的 BorderBrush 着色