1

我有一个用字符填充的文本文件:

ABCABCABCABC

...并且使用脚本(Batch、VBS、Powershell,对 Windows 来说真的很简单)我试图为某个字符的每个实例自动添加一个新行,在本例中为字母 A,因此输出将显示为这样的:

ABC
ABC
ABC
ABC

使用我上面提到的任何脚本工具如何实现这一点?

非常感谢,非常感谢!

4

5 回答 5

6

电源外壳:

(get-content c:\somedir\inputfile.txt) -replace 'A',"`nA" | set-content c:\somedir\outputfile.txt
于 2013-03-21T17:17:46.520 回答
2

如果你可以使用 SED GOOGLE GNUSED

sed s/A/\nA/g <yourfile >resultfile
于 2013-03-21T17:24:19.303 回答
1

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

于 2013-03-21T18:48:12.320 回答
0

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

这是有关批量拆分字符串的更多信息。

于 2013-03-21T17:48:37.907 回答
0

脚本:

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.

于 2013-03-21T18:29:31.943 回答