PowerShell:如何从分隔文本输入中删除列?
我有一个文本文件,其中包含 5 列由空格分隔的文本。例如:
10 45 5 23 78
89 3 56 12 56
999 4 67 93 5
使用PowerShell,如何删除最右边的两列?生成的文件应该是:
10 45 5
89 3 56
999 4 67
我可以使用 -split
运算符提取各个项目。但是,这些项目出现在不同的行上,我不知道如何将它们恢复为每行 3 个项目。
并使问题更加通用(并对其他人有帮助):How to use PowerShell to remove the data at multiple columns in the range [0,n-1]
鉴于输入包含带分隔符的行每n
列的数据?
I have a text file with 5 columns of text delimited by whitespace. For example:
10 45 5 23 78
89 3 56 12 56
999 4 67 93 5
Using PowerShell, how do I remove the rightmost two columns? The resulting file should be:
10 45 5
89 3 56
999 4 67
I can extract the individual items using the -split
operator. But, the items appear on different lines and I do not see how I can get them back as 3 items per line.
And to make the question more generic (and helpful to others): How to use PowerShell to remove the data at multiple columns in the range [0,n-1]
given an input that has lines with delimited data of n
columns each?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
读取文件内容,将其转换为 csv 并仅选择前 3 列:
如果您只想要值(不带标题):
将结果保存回文件:
更新:
只是另一个选项:
Read the file content, convert it to a csv and select just the first 3 columns:
If you want just the values (without a header):
To save back the results to the file:
UPDATE:
Just another option:
一种方法是:(
用 n-1 替换 2)
One way is:
(replace 2 by n-1)
这是通用解决方案:
Here is the generic solution: