找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
楼主: 娜美

[问题求助] PowerShell怎样根据区域字段重复去重复行?

[复制链接]
 楼主| 发表于 2023-8-3 18:31:14 | 显示全部楼层
本帖最后由 娜美 于 2023-8-3 18:33 编辑

回复 15# Five66

1   2    3
1   0    3
1   2    3
Get-Content 1.txt | sort  -unique {$_.split(' ')[1,2] -join ''} | sc  2.txt
执行后结果少了一行
    1   2    3


不是应该得到吗,
1   2    3
1   0    3
发表于 2023-8-3 18:48:30 | 显示全部楼层
本帖最后由 Five66 于 2023-8-3 18:51 编辑

回复 16# 娜美
1.txt的分割符是三个空格吧

  1. Get-Content 1.txt | sort  -unique {($_ -split '   ')[1,2] -join ''} | sc  2.txt
复制代码
发表于 2023-8-3 18:56:53 | 显示全部楼层
最先读取是指去重时最先读取的,去重一般是在排序完之后进行的
其实完全可以像awk那用ps的哈希或列表去重,不过代码会比较长
 楼主| 发表于 2023-8-3 19:04:52 | 显示全部楼层
回复 18# Five66


    明白了 谢谢哥哥
发表于 2023-8-3 20:57:20 | 显示全部楼层
还有种不进行排序的,可能更快更直观更自由点

  1. Get-Content 1.txt | group {($_ -split '   ')[1,2] -join ''} | %{$_.group[0]} | sc 2.txt
复制代码
 楼主| 发表于 2023-8-3 21:15:51 | 显示全部楼层
还有种不进行排序的,可能更快更直观更自由点
Five66 发表于 2023-8-3 20:57



嗯嗯,  如果要在最末尾行再留空一行或2行呢
发表于 2023-8-3 22:00:56 | 显示全部楼层
本帖最后由 Five66 于 2023-8-3 22:02 编辑

回复 21# 娜美

再加上一行命令
cmd /c "echo.>>2.txt"
 楼主| 发表于 2023-8-3 22:14:54 | 显示全部楼层
本帖最后由 娜美 于 2023-8-3 22:22 编辑

回复 22# Five66


   

Get-Content 1.txt | sort  -unique {($_ -split '   ')[1,2] -join ''} | cmd /c "echo.>>2.txt"这样不行的
发表于 2023-8-3 23:20:28 | 显示全部楼层
回复 23# 娜美

两行

  1. Get-Content 1.txt | group-object {($_ -split '   ')[1,2] -join ''} | %{$_.group[0]} | sc 2.txt
  2. cmd /c "echo.>>2.txt"
复制代码
一行

  1. (Get-Content 1.txt | group-object {($_ -split '   ')[1,2] -join ''} | %{$_.group[0]} | sc 2.txt);cmd /c "echo.>>2.txt"
复制代码
 楼主| 发表于 2023-8-4 11:08:36 | 显示全部楼层
本帖最后由 娜美 于 2023-8-4 16:56 编辑

回复 24# Five66

谢谢哥哥指点
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 23:15 , Processed in 0.017955 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表