需要 Gsar 专家(搜索和替换,仅限命令行)

需要 Gsar 专家(搜索和替换,仅限命令行)

我想使用gsar.exe(命令行!)更改文件/行中带有十六进制值的某个单词,但如果该单词位于引号之间,则忽略它

原文:

9023 AAAA "this is a AAAA" "AAAA" "*:;AAAA'" Aaaa " Because AAAA" " aaaa " AaAa

gsar 完成后的文本:

9023 XXXX "this is a AAAA" "AAAA" "*:;AAAA'" XXXX " Because AAAA" " aaaa " XXXX

(其中 XXXX 代表十六进制值 a5)

请注意:

  • 它应该不区分大小写
  • 它应该忽略引号之间的所有内容
  • 我想使用 gsar.exe,但 sed.exe (Windows) 或其他命令行工具也很好
  • 开引号与闭引号相同 (0x22)

我已经为此工作了一整天,但我甚至还没有接近目标 :P

一个聪明人告诉我使用 REGEX,并使用 SKIP 和 FAIL 方法,这样 "[^"]+"(*SKIP)(*FAIL)|\w+ 就可以用来选择不在引号之间的文本。这在 Notepad++ GUI 中效果很好,但我无法将该正则表达式字符串与 Windows 的 gsar 结合使用。

我知道这可以完成,而且可能只需一行。这就是让它更加令人沮丧的原因。它不必是 gsar。Sed.exe 或其他命令行工具也很好!

相关内容