忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT HPC论坛 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 549 | 回复: 7

[文本处理] PowerShell - 如何读入文本 [复制链接]

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
发表于 2017-07-11 13:52 |显示全部楼层
本帖最后由 sunzhiguolu 于 2017-07-11 14:01 编辑

cat color_words.txt
red purple
blue    green
black   brown pink

处理后的结果:
brown blue black
green
purple pink
red

感觉 PowerShell 太强大了,不知道从哪里下手。 (麻烦大神,将文字颜色按照单词的含义进行设置)

回帖须知:
请尽量保持代码的兼容性 (Windows/Linux 通用)

论坛徽章:
0
发表于 2017-07-11 14:24 |显示全部楼层
下述win,linux通用。

文本:
powershell没有:
abc < /aaa/bbb.txt 即没有小于号。 也不建议用 '>' ‘>>’
读取文本用:
$按行分割的数组 = get-content xxx.txt
$不分割_存入整个大字符串 = get-content xxx.txt -raw
$按行分割的数组 = get-content xxx.txt -encoding oem|utf8|unicode  #让shell眼馋的,按文件编码类型,读取文档。

写入文本用:
Set-Content -path /xxx/yyy.txt -Value "abc"
可选参数:
-NoNewline  写完值后不换行
-Encoding  utf8    指定编码。



2 echo。
powershell中的echo,即write-host命令,支持3个主要参数。
1    -ForegroundColor   文字前景色。
2   -BackgroundColor  文字背景色。
3    -NoNewline   输出要输出的内容后,不换行。

例子:
write-host 'green ' -NoNewline -ForegroundColor green ;write-host 'red' -NoNewline -ForegroundColor red


  

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
发表于 2017-07-11 14:35 |显示全部楼层
本帖最后由 sunzhiguolu 于 2017-07-11 14:57 编辑

回复 2# 本友会机友会摄友会
请教大神,
black blue brown
我想将这三个单词 以每个单词的首字母作为键 将这些单词加入到键名 为 "b" 的对象中。
该如何做到?





论坛徽章:
0
发表于 2017-07-11 15:52 |显示全部楼层
听不懂。键值对,即哈希表。名 不能有重复。

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
发表于 2017-07-11 16:29 |显示全部楼层
本帖最后由 sunzhiguolu 于 2017-07-11 18:02 编辑

回复 4# 本友会机友会摄友会
$words = @{}
$words.b = @("black", "blue", "brown")

另外,
$color = "red"
write-host -nonewline $color -foregroundcolor $color

如何让 write-host 明白我的意思? (就是内置的颜色不够用 有什么办法可以解决吗)

如:
purple, pink, brown



论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
发表于 2017-07-11 16:58 |显示全部楼层
占个楼,麻烦大神耐心解答下:
  1. $words = @{}
  2. $color = @{"K" = "R"; "V" = "Red"}
  3. $words.$color.K = $color.V
  4. $words.R
复制代码


如何让 PowerShell 知道,我使用的是
$words.R = $color.V

就是想偷个懒,不知道能不能行。

论坛徽章:
0
发表于 2017-07-12 11:42 |显示全部楼层
1 powershell只有16个调色板。有16个默认值。基本够用了。
极端情况下,如需更多颜色,需要保存调色板,改变调色板,显示,回复调色板。

2 你这是哈希表。我将在哈希表章,讲解。
你语句的用法很不规范,上下套,很容易把人绕懵逼。我建议用,增删查改的方式,用哈希表。
powershell,python推崇的是一眼看懂。猪懂傻改。而不是perl推崇的,茴香豆,幺蛾子。不是越烧脑装b越好。

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
发表于 2017-07-12 20:56 |显示全部楼层
问题解决了,谢谢。



测试环境:Windows 7

对于 Powershell 没有提供的前景颜色做了灰色字体处理。(利用 [System.ConsoleColor] 进行判断即可)

说下 PowerShell 给我的使用感受:
优点:既然是基于 .NET 自然相比其他脚本语言具有先天的优势
类型丰富,面向对象, 支持强类型

缺点:
代码的冗余度比较高, 其他方面由于学习时间较短暂未发现

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP