如何有效地删除文本文件中行的前几个字符?

时间:2013-01-08 02:20:20

标签: text batch-file formatting command

文本文件(abc.txt)中的2行示例:

    PMIP_TSD_2012120323.csv:03/12/2012,22:51:53,CAU TACS,TS,PPT4I_TS22,   AJAY,595959,P,Legal Exit,(6 0) AJAY,G1234567M,SERVICES P L,8401352W,  

    PMIP_TSD_2012111300.csv:12/11/2012,23:20:13,CAU TACS,TS,PPT4O_TS32,ARUMUGAM,620466,P,Legal Exit,(5 0) ARUMUGAM,G686W,SUPERSONIC SERVICES P L,1982W,  

我希望每一行都以日期而不是csv文件名开头。意思是删除PMIP ...... csv:对于每一行。如何使用批处理文件执行此操作?我有几百行,我不想手动完成。我的文件名是abc.txt,位于D:\ Int \ KGX

4 个答案:

答案 0 :(得分:1)

perl -npi -e 's/[^:]+://' /tmp/abc.txt收益:

03/12/2012,22:51:53,CAU TACS,TS,PPT4I_TS22,   AJAY,595959,P,Legal Exit,(6 0) AJAY,G1234567M,SERVICES P L,8401352W,  
12/11/2012,23:20:13,CAU TACS,TS,PPT4O_TS32,ARUMUGAM,620466,P,Legal Exit,(5 0) ARUMUGAM,G686W,SUPERSONIC SERVICES P L,1982W,  

来自您的数据。希望有所帮助...

答案 1 :(得分:1)

我可以告诉你我对这个问题的看法

我们可以使用C ++或Java来解决这个问题

  1. 打开文件
  2. 在循环中,我们在String变量中获取行
  3. 使用SubString(或某种类似的函数或实用程序)来指定第一个索引号(在我们的例子中为23)
  4. 将子字符串存储在新文件中
  5. 完成循环
  6. 新文件是您想要的,希望有所帮助

答案 2 :(得分:1)

此批处理文件执行此操作:

@echo off
cd /D "D:\Int\KGX"
(for /F "tokens=1* delims=:" %%a in (abc.txt) do (
   echo %%b
)) > abc-NEW.txt

答案 3 :(得分:0)

这应该这样做

setlocal enabledelayedexpansion
for /f "tokens=1,* delims=:" %%a in (abc.txt) do (
echo !date!:%%b >>new.txt
)
del abc.txt /f /q
ren new.txt abc.txt