批量删除文本文件中每行上指定字符之前的所有内容

时间:2015-02-24 09:54:51

标签: windows

我们要求从文本文件中删除指定字符前每行的所有竞争;

例如,我们在测试文件中有以下内容;

sahdj232$This is 1st line
sdsdsadsa$This is 2nd line
sdasds$This is 3rd line

现在通过将上面的文件名作为批处理文件的输入,我们希望文件具有以下内容;

$This is 1st line
$This is 2nd line
$This is 3rd line

在这里,我们要删除文本文件中“$”之前的所有内容。

有人可以提供帮助。

2 个答案:

答案 0 :(得分:1)

@ECHO OFF
SETLOCAL
(
FOR /f "tokens=1*delims=$" %%a IN (q28692650.txt) DO ECHO($%%b
)>newfile.txt

TYPE newfile.txt

GOTO :EOF

我使用了一个名为q28692650.txt的文件,其中包含我的测试数据。

制作newfile.txt

简单地说,对于文件中的每一行,使用$作为分隔符将行拆分为两个标记。将第一个标记($之前的部分)放在%%a中,将其余部分放在%%b中。然后回显$和%%b

答案 1 :(得分:0)

读取变量中的文件内容,然后使用以下表达式,假设文件内容已加载到toClean变量中:



var toClean = "sahdj232$This is 1st line\nsdsdsadsa$This is 2nd line\nsdasds$This is 3rd line";
var split = toClean.split(/[\n$]+/);
var clean = '';

for(var i = 0, len = split.length; i < len; i++){
    var index = 2 * i + 1;
    if( split[index] !== undefined ){
        clean += '$' + split[index];
    }
}

console.log(clean);
&#13;
&#13;
&#13;

只有在您的内容中有$的对号时才会起作用。否则你可以使用正则表达式。