powershell - 使用包含 x 列的 3 个文件中的数据我需要在列帐户中输出数据
问题描述
我有 3 个 txt 文件,即 file1 、 file2 、 file3 包含用“|”分隔的数据 我需要过滤所有在 columnx 中只有“1”的行,并在“account”列中打印值
文件1.txt
line|account|column3|columnx
line1|111111|jahadkadaldabndal|1
line2|2323413341|adajkadadbjkqqweq|0
line3|21122|adaieaqelqq|0
line4|236521|jadad|1
文件2.txt
line|account|column3|columnx
line1|1117831|jahadkadaldabndal|1
line2|23234178841|adajkadadbjkqqweq|1
line3|21122|adaieaqelqq|0
line4|236526|jadad|1
文件 3.txt
line|account|column3|columnx
line1|1113333|jahadkadaldabndal|1
line2|232341335|adajkadadbjkqqweq|1
line3|21124|adaieaqelqq|1
line4|236523|jadad|1
输出应该是这样的:
111111
236521
1113333
236523
21124
232341335
1117831
23234178841
236526
我有一个代码,但只有一个文件 txt 在线。
powershell -nop -c "(import-csv .\*.txt -del '|'|? columnx -eq 1).account"
我仍在弄清楚我应该使用什么我在这方面真的很新,任何人都可以教我或给我一些代码,以便我可以完成这个谢谢。
解决方案
好吧,您的 powershell 命令几乎就在那里,您只需要一个foreach
-loop。
这里打印出任何account
值,其中columnx
是1
:
Get-ChildItem -Filter "*.txt" | % {Import-Csv $_.Fullname -Delimiter '|'} | Where-Object {$_.columnx -eq 1} | Select-Object -ExpandProperty account
请注意,这%
只是循环的每个对象的别名foreach
,$_
因此每个对象都.csv
赋予它。
要跟进评论中的问题:
如果我的 txt 文件没有标题怎么办?
Import-Csv
有一个-Header
选项可让您为导入添加标头,在您的情况下,它应该如下所示:
Get-ChildItem -Filter "*.txt" | % {Import-Csv $_.Fullname -Delimiter '|' -Header "line","account","column3","columnx"} | Where-Object {$_.columnx -eq 1} | Select-Object -ExpandProperty account
如果我需要最后两列的值为“1”怎么办
Where-Object
您可以像这样向using添加额外的检查-and
:
Get-ChildItem -Filter "*.txt" | % {Import-Csv $_.Fullname -Delimiter '|'} | Where-Object {$_.columnx -eq 1 -and $_.column3 -eq 1} | Select-Object -ExpandProperty account
推荐阅读
- rest - 如何在使用 JWT 的 asp.net 核心 Web 应用和 Web api 中使用 google authenticaion
- reactjs - 如何在 Reactjs 中使用 mobx 渲染之前更新状态
- json - 在 ionic 中以 JSON 格式保存数组
- ios - 可绑定属性未更新 iOS 上的视图
- rust - 错误[E0599]:在当前范围内没有为类型“&mut G”找到名为“gen”的方法
- python - .loc 在多级索引数据帧上的意外行为
- docker - 在 docker 容器中重新运行脚本
- c# - 插入 MySQL 时在数据库表上获取不正确的 BLOB 值
- jquery - jQuery 更改特定 li 元素的类基础 JSON 数组输入
- java - 如何从结果集中创建多个键值哈希图