我有一个用字符填充的文本文件:
ABCABCABCABC
...并且使用脚本(Batch、VBS、Powershell,对 Windows 来说真的很简单)我试图为某个字符的每个实例自动添加一个新行,在本例中为字母 A,因此输出将显示为这样的:
ABC
ABC
ABC
ABC
使用我上面提到的任何脚本工具如何实现这一点?
非常感谢,非常感谢!
我有一个用字符填充的文本文件:
ABCABCABCABC
...并且使用脚本(Batch、VBS、Powershell,对 Windows 来说真的很简单)我试图为某个字符的每个实例自动添加一个新行,在本例中为字母 A,因此输出将显示为这样的:
ABC
ABC
ABC
ABC
使用我上面提到的任何脚本工具如何实现这一点?
非常感谢,非常感谢!
电源外壳:
(get-content c:\somedir\inputfile.txt) -replace 'A',"`nA" | set-content c:\somedir\outputfile.txt
如果你可以使用 SED GOOGLE GNUSED
sed s/A/\nA/g <yourfile >resultfile
Notepad++
This is just a find and replace if you have notepad++
installed on your computer
(http://notepad-plus-plus.org/download/v6.3.1.html)
Open your text file, press Ctrl H to get Find & Replace
Select Search Mode as Extended
or Regular expression
Find A
Replace \nA
Windows 批处理:
@echo off
setlocal enabledelayedexpansion
echo contents of oldfile.txt:
type oldfile.txt
echo;
del newfile.txt
for /f "usebackq delims=" %%I in ("oldfile.txt") do (
set "str=%%I" && set "str=!str:A=,A!"
for %%x in (!str!) do (>>"newfile.txt" echo %%x)
)
echo contents of newfile.txt:
type newfile.txt
示例输出:
C:\Users\me\Desktop>test.bat
contents of oldfile.txt:
ABCABCABCABCABC
contents of newfile.txt:
ABC
ABC
ABC
ABC
ABC
这是有关批量拆分字符串的更多信息。
脚本:
var fso = new ActiveXObject("Scripting.FileSystemObject");
var read = fso.OpenTextFile("oldfile.txt", 1, 2);
var write = fso.CreateTextFile("newfile.txt", true);
var str = read.ReadAll();
write.Write(str.replace(/A/g,'\nA').replace(/^\n/m,''));
read.Close(); write.Close();
如果它作为文本的第一个字符出现,则第二个.replace
删除第一个新行。.js
使用扩展名保存此脚本并使用cscript filename.js
.