Powershell-如果找到2种图案,则打印该行

时间:2018-07-27 11:04:08

标签: string powershell design-patterns

我有以下几行:

pip install xlrd

并且只有在找到“选项标题”和“选定”的情况下,才需要打印它。

当我使用时:

<option title="ORACLEDB" selected="selected" value="1111">ORACLEDB</option>
<option value=""  selected="selected"></option>
<option title="TRINITY" value="3162">TRINITY</option>

然后,当结果应仅是第一行时,它会打印出与“选项标题”或“选定”匹配的所有行。

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

您可以使用foreach浏览文件并搜索如下模式:

Get-Content -Path "C:\Users\am281h\Desktop\page.htm" | % { if ($_ -like "*option title*selected*"){Write-Host $_}}

%是foreach的别名。 Foreach从管道中获取其参考对象。

$_处理foreach的当前对象。

-like使您可以比较具有简单模式的对象。

*中的*option title*selected*等于x个随机字符(包括0个字符)。

答案 1 :(得分:1)

这看起来像xml节点=>我会将行作为xml部分处理:

$src = '<option title="ORACLEDB" selected="selected" value="1111">ORACLEDB</option>',
'<option value=""  selected="selected"></option>',
'<option title="TRINITY" value="3162">TRINITY</option>'

$src | 
  % {[xml]$_} | #its xml!
  ? { $_.option.title -and $_.option.selected } | #filter
  % { write-host $_.OuterXml } #print as text