Board logo

标题: [文本处理] 【已解决】BAT能否在文本内指定的某一个数字下添加其他数字? [打印本页]

作者: ttrrf    时间: 2013-10-17 21:50     标题: 【已解决】BAT能否在文本内指定的某一个数字下添加其他数字?

本帖最后由 ttrrf 于 2013-10-18 13:57 编辑

有这么一个文件:apktool.yml内容是:
version: 1.5.2
apkFileName: framework-miui-res.apk
isFrameworkApk: true
usesFramework:
  ids:
  - 1
sdkInfo:
  minSdkVersion: '17'
  targetSdkVersion: '17'
packageInfo:
  cur_package: miui
  orig_package: miui
compressionType: false
我想在上面的-1下面添加-2,-3,-4,-5.成为这样:

version: 1.5.2
apkFileName: framework-miui-res.apk
isFrameworkApk: true
usesFramework:
  ids:
  - 1
  - 2
  - 3
  - 4
  - 5
sdkInfo:
  minSdkVersion: '17'
  targetSdkVersion: '17'
packageInfo:
  cur_package: miui
  orig_package: miui
compressionType: false
如何用批处理解决呀?麻烦大大帮帮忙呀!我搞了很久了。
作者: ttrrf    时间: 2013-10-18 09:19

我知道linux系统里的命令用这个代码就可以完成:
$(hide) sed -i "s/- 1/- 1\n  - 2\n  - 3\n  - 4\n  - 5/g" apktool.yml
但是我把弄到windows下的批处理就说$(hide) sed 不是内部和外部命令,也不是可此行的文件,也不是批处理文件。各位大大能否把它转化为windows下的批处理。谢谢!
作者: Lumiere    时间: 2013-10-18 10:15

  1. @echo off
  2. (for /f "delims=" %%a in (1.yml) do (
  3.     if not "%%a"=="  - 1" (echo %%a) else (
  4.     for /l %%b in (1 1 5) do echo   - %%b
  5.     )
  6. ))>2.yml
  7. pause
复制代码
回复 2# ttrrf
作者: DAIC    时间: 2013-10-18 10:20

回复 2# ttrrf


下载一个sed.exe,执行:
  1. sed -i "s/- 1/- 1\n  - 2\n  - 3\n  - 4\n  - 5/g" apktool.yml
复制代码

作者: ttrrf    时间: 2013-10-18 11:18

回复 4# DAIC

我的系统是64位的,这个sed.exe是32位的,不行呀!
作者: DAIC    时间: 2013-10-18 11:26

回复 5# ttrrf


我的系统也是64位的,从这里下载试试:
http://code.google.com/p/gnu-on-windows/downloads/list
作者: ttrrf    时间: 2013-10-18 12:34

搞定了,感谢!其实第一个兄弟的代码也能成功的!就是有点复杂,但是还是要感谢他的。
作者: Batcher    时间: 2013-10-18 12:36

回复 7# ttrrf


    请点击3楼和4楼右下角的“评分”按钮




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2