PowerShell 将文本里的内容根据每一行行首的字符按字母的字典序排序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_41104353/article/details/82469105

看完了《Learn Windows PowerShell in a Month of Lunches Third Edition》,总得做些东西才能巩固一下。
好巧不巧,今天正好碰到一个问题,寻思着用PowerShell来解决,还真给解决了。

警示

使用前请备份你的文件!!!
使用下面的方法,我的一个文件有几个中文字乱码了,推测可能和写入时的编码有关。

问题描述

咱有如下这个文件,但是这个单词顺序太乱了,我们想要按照字典顺序给它排一下。(表述能力有待提高..感觉说的不太清楚)
这里写图片描述

解决过程

我们来分析一下,大致要涉及到如下问题:
1. 如何读取文件
2. 如何对文件按行进行排序
3. 如何覆盖文件内容

ok,问题分析到这。那么怎么解决呢,有大致如下两步:
1. 回忆自己处理过有没有类似的问题。前两个问题感觉书上都有提到过,但是仔细想想感觉啥也不记得。不着急,咱们还有第二步。
2. 搜索引擎

搜索完毕后,我们得到问题的解决方案如下:
1. Get-Content
2. Sort-Object
3. Set-Content

有了这些命令,那么怎么用呢?
我们的CHAPTER 3 Using the help system 可不是白学的。我们这次使用其中的 Help 命令的 -ShowWindow 参数来查看每个命令的帮助。为啥用这个呢?因为是中文的…看得快。

解决方案

经过仔细查看每个命令的使用帮助后,我们可以很简单的写出这个问题的方法(记得备份哦):

Get-Content "the Decorator Pattern.txt" | Sort-Object | Set-Content "the Decorator Pattern.txt"

当然,在使用该命令前,要移动到该文件所在文件夹。或者给参数为绝对路径。
这里写图片描述

只需要一行我们就完成了任务,有没有觉得很简单呢。

问题扩展

  1. 如何对文件夹下的所有文件作出同样处理?
  2. 对于http://www.bathome.net/thread-15889-1-1.html这篇文章提到的问题,我们该怎么解决呢?可以参考https://blog.csdn.net/PowerShell/article/details/1725917

参考资料

http://www.cnblogs.com/fuhj02/archive/2010/12/06/1897379.html

猜你喜欢

转载自blog.csdn.net/sinat_41104353/article/details/82469105
今日推荐