powershell - 在数字首次出现后对 .CSV 的内容进行排序
问题描述
我想以一种非常不寻常的方式对我的服务器列表进行排序。到目前为止,我设法使用 Powershell 对我的 CSV 文件进行排序,如下所示:
import-csv path | sort-object Name | export-csv path -useculture -notypeinformation
->
Name,IP,...
Server100,stuff,...
Server200,stuff,...
Server300,stuff,...
vServer100,stuff,...
vServer200,stuff,...
vServer300,stuff,...
但我真的很想像这样对它们进行排序:
Name,IP,...
Server100,stuff,...
vServer100,stuff,...
Server200,stuff,...
vServer200,stuff,...
Server300,stuff,...
vServer300,stuff,...
阅读有关正则表达式的内容,但我对脚本很陌生,无法弄清楚。
解决方案
您可以将脚本块或计算的属性定义作为-Property
参数传递:
Import-Csv $path |Sort-Object { +$($_.Name -replace '\D') }, Name |...
正则表达式操作$_.Name -replace '\D'
将获取Name
属性的值(例如vServer100
)并删除任何非数字。子表达式前面的 将结果字符串(例如
)转换为数字(例如)。+
"100"
100
对这个数字排序后,Sort-Object
会按 排序Name
,所以ServerXXX
出现在前面vServerXXX
推荐阅读
- php - Laravel - 如何在控制器中处理 API 响应?
- javascript - 如何在编辑 contenteditable div 时计算光标的 x、y 坐标?
- xmpp - 如何防止用户向群组发送消息,但继续接收来自该群组的消息(只读)?
- python - 无法使用 tf.control_dependencies() 创建控制依赖项
- python - Python 异常在 Glib/DBUS 循环中发生时不会传播/打印
- django - 如何定义 django 模板文件夹?
- python - 可以用 PyCharm Professional 代替 CLion - 主要用于 python
- android - MacBook Pro Mojave、Android Pie、Android 设备被 adb 识别但未被 Android Studio 识别
- css - 如何弯曲 CSS 伪元素背景?
- javascript - Nest Js TypeORM repository.update 方法不更改对象的多个字段