PowerShell正则匹配:如何仅筛选以单个#开头的行
解决方法
想只获取文件里仅以单个#开头的行(也就是# cat和# dog这类),你需要修改Select-String的正则匹配规则,确保行首只有一个#,且后面不跟着其他#。用这条命令就行:
Get-Content file.txt | Select-String -Pattern "^#[^#]"
正则规则解释:
^:锁定行的开头位置#:匹配单个#符号[^#]:匹配任意不是#的字符,确保第一个#后面没有连续的第二个#
要是遇到#后面直接是空行的情况,也可以用更严谨的写法,允许#后面是行尾:
Get-Content file.txt | Select-String -Pattern "^#(?:[^#]|$)"
原来的^#之所以会匹配所有行,是因为它只要求行首有#,不管后面还有多少个连续的#,加个[^#]就能把多#的行排除掉。
内容的提问来源于stack exchange,提问作者ilRobby
相关产品推荐
相关产品推荐

