Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 查找和删除文本文件中没有字符串模式的行_Powershell - Fatal编程技术网

Powershell 查找和删除文本文件中没有字符串模式的行

Powershell 查找和删除文本文件中没有字符串模式的行,powershell,Powershell,我试图了解如何使用powershell查找和删除一组文件中没有特定字符串模式的行。例如,我有以下文本文件: 111111 22x222 333333 44x444 这需要转化为: 22x222 44x444 假设“x”的字符串模式不在任何其他行中 如何在powershell中发出这样的命令来处理一堆文本文件 谢谢 dir | foreach { $out = cat $_ | select-string x; $out | set-content $_ } dir命令列出当前目录中的文件;f

我试图了解如何使用powershell查找和删除一组文件中没有特定字符串模式的行。例如,我有以下文本文件:

111111
22x222
333333
44x444

这需要转化为:

22x222
44x444

假设“x”的字符串模式不在任何其他行中

如何在powershell中发出这样的命令来处理一堆文本文件

谢谢

dir | foreach { $out = cat $_ | select-string x; $out | set-content $_  }
dir
命令列出当前目录中的文件;
foreach
遍历每个文件
cat
读取文件并将其导入
选择字符串
<代码>选择字符串查找包含特定图案的行,在本例中为“x”;
选择字符串的结果存储在
$out
中;最后,
$out
设置内容
一起写入同一个文件


我们需要临时变量
$out
,因为您不能同时读取和写入同一文件。

这将处理工作目录中的所有txt文件。检查每个文件内容,并且只允许其中包含“x”的行传递。结果将写回文件

Get-ChildItem *.txt | ForEach-Object{
    $content = Get-Content $_.FullName | Where-Object {$_ -match 'x'}
    $content | Out-File $_.FullName
}

某些行前的空格是故意的吗?如果我需要处理“x”或“y”或“z”怎么办?我如何形成选择字符串以将所有这些作为“或”?@Niner它是一个正则表达式,因此您可以执行
select string“x | y | z”
。要了解更多信息,请查看。