从网页copy到Typora的内容可能会显示红点,很烦,查看后是U+200B 零宽度空格字符,一个一个删除很麻烦,正好学习下go语言,于是写个程序去除md文件中的U+200B 零宽度空格字符.
打包好的exe在文章结尾。
使用:
放入存放md文件目录下,程序遍历目录以及子目录中md文件,删除md文件中零宽度空格字符
package main
import (
"fmt"
"os"
"path/filepath"
"strings"
"io/ioutil"
)
func main() {
filepath.Walk(".", walkfunc)
}
func rmu200b(s string) string {
str := make([]rune, 0, len(s))
for _, v := range []rune(s) {
if v == 8203 {
continue
}
str = append(str, v)
}
return string(str)
}
func walkfunc(path string, info os.FileInfo, err error) error {
//fmt.Println(path)
ok := strings.HasSuffix(path, ".md")
if ok {
//fmt.Println(path)
data, err := ioutil.ReadFile(path)
if err == nil {
//fmt.Println(data)
var filedata = string(data)
//run := []rune(filedata)
//fmt.Println(filedata)
//fmt.Println(run)
//fmt.Printf("%U\n", run)
//fmt.Println(data)
var filedatanew = rmu200b(filedata)
if len(filedata) != len(filedatanew) {
fmt.Println(path)
ioutil.WriteFile(path+"bak",[]byte(filedata),0777)
ioutil.WriteFile(path,[]byte(filedatanew),0777)
}
}
}
return nil
}