Powershell多次搜索并用换行符替换txt

时间:2019-06-22 21:19:49

标签: text line break

我需要在文本文件中用“ *”标记一些错误。

在我的情况下,我要标记为“ *”的错误是换行符后没有大写字母的句子。问题是,我找不到一种将换行符包含在`n或其他任何代码中的方法。

我使此powershell代码通过.bat文件启动,但它将`n视为字符串,而不是换行符。顺便说一下,我也可以使用.c扩展名ofc。

powershell -Command "(gc test.txt) -replace '`na', '`n*a' -replace '`nb', '`n*b' | Out-File converted.txt"

此代码应从字母“ a”到“ z”,但在此示例中仅包括字母“ a”和“ b”,以使其简短易读。

我想要的是:

示例输入文本:

I want to fix this code.
but I'm not a coder.

输出应为:

I want to fix this code.
*but I'm not a coder.

如您所见,我不需要将“ but”更改为“ But”。我只需要用“ *”标记错误即可。

换行符之后的最终代码必须将所有未大写的字母替换为“ * a”,“ * b”和“ * c”,直到最后一个字母“ * z”为止。

更长的例子,以防万一:

示例输入:

Alpha
bravo
charlie
delta
echo
foxtrot
Golf
Hotel

输出文本应为:

Alpha
*bravo
*charlie
*delta
*foxtrot
*echo
*foxtrot
Golf
Hotel

先谢谢了。如果您想知道我为什么需要这个;我是一家制作公司的字幕控制员,我每个月都要检查大量此类错误。我使用的是原始方法,例如使用MS Word,并使用“ ^ p”运算符进行换行,但这确实很慢,而且要花我几个小时才能完成。

1 个答案:

答案 0 :(得分:0)

我找到了一种解决方案,但是特殊字符在编码时丢失了。我需要使用1254土耳其语编码。 “ -Encoding Windows-1254”或“ -Encoding cp1254”不起作用。我怎样才能解决这个问题?我还尝试将编码包含到获取内容中。,