2017-03-05 49 views
4

我想要做的是從文本文件中創建一個word文檔。但文本文件中有pageBreaks。我想刪除或替換文本文件中的那些pageBreaks。這是爲了讓我在word文檔中添加pageBreaks,隨後我會在實際需要的地方創建該文檔。使用powershell如何替換文本文件中的pageBreak?

下面是我嘗試自己替換文本文件中的pageBreak的PowerShell代碼。這不起作用。由於使用「f」代替pageBreak不起作用。

$oldWord = "`fPage" 
$newWord = "Page" 

#-- replace the page breaks in the file 
(Get-Content $inputFilePath) -replace '$oldWord', '$newWord' | Set-Content $inputFilePath 

在文本編輯器中顯示了分頁符符號UltraEdit是♀ 在UltraEdit更換性格是很容易。我想用Powershell替換或刪除它。

下面是一個相關的問題。但關於PowerShell代碼仍然沒有答案。

How to remove unknown line break (special character) in text file?

+0

我想要做的是從文本文件中創建一個word文檔。但文本文件中有pageBreaks。我想刪除或替換文本文件中的那些pageBreaks。這是爲了讓我在word文檔中添加pageBreaks,我將隨後創建 – RayBacker

+0

@RyanBemrose我嘗試使用-Raw。以下是錯誤。 Get-Content:找不到與參數名稱'Raw'匹配的參數。 – RayBacker

+0

我猜Windows 7?我認爲'-Raw'參數是在8.0或8.1中添加的。無論如何,如果發佈的答案不適合你,我們可能需要確切知道角色是什麼。嘗試在十六進制編輯器中打開文件以查看頁面字符序列的結尾。 –

回答

2

分頁符,你可以使用:

[io.file]::ReadAllText('H:\oldFile.txt') | %{$_.replace("`f","")} >h:\newFile.txt 

以下片段會將PowerShell的V3工作:

cat H:\oldFile.txt -raw | %{$_.replace("`f","")} >h:\newFile.txt 
+0

@RayBacker我修改了代碼 –

+0

@RayBacker如果這解決了問題,那麼將答案標記爲已接受,將有助於獲得相同問題的人 –

+0

@ Abhijit-pk代碼工作並接受答案。謝謝 – RayBacker

2

感謝您的問題!這一個很有趣。

因此,Form-Feed特殊字符是PowerShell中的一個bug。如果你將它反映出來,你只會得到一個奇怪的字符,或者如果你不能顯示它,就會得到一個正方形。但是,如果您將其複製並粘貼回powershell終端,那麼只需將命令入口點移動到屏幕頂部即可。奇。

我所做的是試圖找到替換一般特殊字符的方法。您可以使用$oldWord -replace 'REGEX_GOES_HERE', 'THING_TO_REPLACE_WITH_HERE PowerShell中使用正則表達式,所以我想出了是這樣的:

$oldWord -replace '[\f]', '' #You can also use \r for carriage return, \n for new line, \t for tab, \s for ALL whitespace

這會直接刪除換頁符的所有實例。

希望這會有所幫助!乾杯!

+0

嘗試使用$ oldWord =「[\ f']頁面」$ newWord =「頁面」。但這不起作用。我不習慣REGEX。 – RayBacker

+0

對不起,我在我發送的代碼中犯了一個小錯字。如果你的字符串看起來像「'fhere是一些帶有怪異符號'f的單詞並保存到變量'$ oldVariable'中,那麼你可以通過執行'$ oldVariable -replace'來獲得」固定「版本[\ f] 「,」「將查找所有'f的實例並用空字符串替換它。結果將是「這裏有一些帶有奇怪符號的單詞」 –

相關問題