Board logo

标题: 帮忙改下 这个批处理 [打印本页]

作者: amio     时间: 2008-7-5 21:26    标题: 帮忙改下 这个批处理

原:
type nul>"tmp.txt"
for /f "delims=:" %%a in ('findstr /n ".*\[..*\]" c:\a\a.txt') do set .%%a=a
for /f "tokens=1* delims=:" %%a in ('findstr /n .* c:\a\a.txt'') do (
  if defined .%%a (
    >>"tmp.txt" echo.
  )
  for /f "tokens=*" %%i in ("%%b") do (
    >>"tmp.txt" echo.%%i
  )
)



c:\a   目录下还有很多 .txt 文件   想把这个 c:\a\a.txt  变成 c:\a\*.txt

不能要 tmp.txt  这个文件了   而是直接修改源文件  不知道可以实现不?
作者: HAT     时间: 2008-7-5 22:34
不管是Windows还是Unix,都没有哪个命令可以无误地直接修改源文件。
作者: ywwywwjm     时间: 2008-7-6 01:21
sed -i -e "s/$/\r/;s/\(.*\[..*\]\)/\r\n\1/" c:\a\a.txt
作者: amio     时间: 2008-7-6 10:15


  Quote:
Originally posted by ywwywwjm at 2008-7-6 01:21 AM:
sed -i -e "s/$/\r/;s/\(.*\[..*\]\)/\r\n\1/" c:\a\a.txt

c:\a\a.txt   这个可以改成 c:\a\*.txt     ???
作者: amio     时间: 2008-7-6 10:19
sed -i -e "s/$/\r/;s/\(.*\[..*\]\)/\r\n\1/" c:\a\a.txt   这个好像没什么作用


hat   -i 参数可以修改源文件
作者: amio     时间: 2008-7-6 10:20
如果那个批处理 用sed 实现也可以   

如果可以实现   在用个for   命令  应该就可以实现批量修改了
作者: HAT     时间: 2008-7-6 10:34
你能否确定sed -i是否使用了临时文件来实现呢?就像change.exe一样
你能否确定sed -i以后,原文件的格式没有改变呢?
作者: amio     时间: 2008-7-6 13:18


  Quote:
Originally posted by HAT at 2008-7-6 10:34 AM:
你能否确定sed -i是否使用了临时文件来实现呢?就像change.exe一样
你能否确定sed -i以后,原文件的格式没有改变呢?

先不说这个问题  


能不能 实现 用sed  代替 上面那个批处理