[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 4# xczxczxcz


   不好意思大佬, 我前面的描述太粗略了, 实际我想表达的是下面这个贴子的反向整理

http://www.bathome.net/thread-64359-1-1.html

TOP

本帖最后由 小白龙 于 2022-11-20 15:37 编辑

回复 4# xczxczxcz


  多谢大佬支招,

对正则有点晕, 有个情况忘提了,
处理前: 所有键的内容和值的内容的每行前都有一个空格,
处理后: 要删除所有键和值的内容的每行前的空格

现在下面键值内部的空行前面还是有个空格

sss Bv=
Hello 2

World 2
Bv.fff

TOP

本帖最后由 xczxczxcz 于 2022-11-20 14:35 编辑

娱乐一下:
  1. $s = @'
  2. sss A=
  3. Key 1
  4. sss Av=
  5. Hello 1
  6. World 1
  7. Av.fff
  8. sss B=
  9. Key 2
  10. sss Bv=
  11. Hello 2
  12. World 2
  13. Bv.fff
  14. sss C=
  15. Key 3
  16. sss Cv=
  17. Hello 3
  18. World 3
  19. Cv.fff
  20. sss kv=
  21. @
  22. {A}={Av}
  23. {B}={Bv}
  24. {C}={Cv}
  25. DDD(kv)
  26. '@
  27. [regex]::Replace($s, "(?sm)(?:(?!Key).)*Key\s*(\d+)(?:(?!\w+\s*\1).)*(?<m>(?:(?!\r?\n\s*\w+v\.fff).)*)","Key `$1`r`n-`r`n`${m}`r`n---`r`n") -replace '(?s)\r?\n?\s*(---)(?:(?!\1).)*$' -replace '(?m)^ +(\w+)','$1';
  28. ([regex]::Matches($s,"(?is)Key(?:(?!\r?\n?\w+v\.fff).)*").Value -join "`r`n---`r`n") -replace '(?m)(?:(?!v=).)*v=','-' -replace '(?m)^ +(\w+)','$1';
  29. 或 自己弄
复制代码
1

评分人数

QQ: 己阵亡
脚本优先 [PowerShell win10]

TOP

回复 2# hfxiang


    多谢大佬支招,

好像没有用正则, 这个exe能支持管道吗? 也就是要处理的文本不是在文件中获取

TOP

  1. sss A=
  2. Key 1
  3. sss Av=
  4. Hello 1
  5. World 1
  6. Av.fff
  7. sss B=
  8. Key 2
  9. sss Bv=
  10. Hello 2
  11. World 2
  12. Bv.fff
  13. sss C=
  14. Key 3
  15. sss Cv=
  16. Hello 3
  17. World 3
  18. Cv.fff
  19. sss kv=
  20. @
  21. {A}={Av}
  22. {B}={Bv}
  23. {C}={Cv}
  24. DDD(kv)
复制代码
以ANSI格式保存为1.txt
  1. /sss [^ ]=/ {
  2. A = substr($0, 1, 5) "v="
  3. B = substr($0, 5, 1) "v.fff"
  4. while ((getline) > 0) {
  5. if ($0 == B) {
  6. print "---"
  7. next
  8. }
  9. if ($0 == A) {
  10. print "-"
  11. } else {
  12. print
  13. }
  14. }
  15. }
复制代码
以ANSI格式保存为1.awk
下载gawk( http://bcn.bathome.net/tool/4.1.0/gawk.exe
执行
  1. gawk -f.\1.awk 1.txt>2.txt
复制代码
结果(2.txt)
  1. Key 1
  2. -
  3. Hello 1
  4. World 1
  5. ---
  6. Key 2
  7. -
  8. Hello 2
  9. World 2
  10. ---
  11. Key 3
  12. -
  13. Hello 3
  14. World 3
  15. ---
复制代码
1

评分人数

TOP

返回列表