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

[文本处理] gawk 支持哪些编码?

本帖最后由 娜美 于 2023-8-15 17:14 编辑

gawk 支持有那些编码

可以让gawk对UTF16编码文本直接处理吗

例,偿试不行
  1. gawk --locale=ZH_CN.UTF16 "/A+/"  1
复制代码
UTF16测验文本
  https://wwkt.lanzoul.com/i0yCB15dwcti

gawk5.1 版本
https://wwkt.lanzoul.com/iOZVa15gopbi

回复 1# 娜美


    请找个UTF16编码文本上传到网盘。另外说明一下你使用的gawk是哪个版本。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 娜美 于 2023-8-14 21:11 编辑

回复 2# Batcher

我不知道那个gawk版本可以哦,  还请告知一下

我用的是
GNU Awk 4.1.0, API: 1.0
Copyright (C) 1989, 1991-2013 Free Software Foundation.
  1. gawk  "/BBBBBBBBBF/" 2.txt
复制代码
提示不能读取
gawk: fatal: cannot open file `2.txt' for reading (No such file or directory)

测验文本
  https://wwkt.lanzoul.com/i0yCB15dwcti

TOP

额,1楼里的
例,偿试不行

    gawk --locale=ZH_CN.UTF16 "/A+/"  1

中的不行是指啥,选项不行还是选项值不行还是文件不行还是其他的不行,至少应该把运行后的提示复制粘贴发出来吧

TOP

本帖最后由 娜美 于 2023-8-15 15:32 编辑

回复 4# Five66


   运行后提示:
gawk: fatal: cannot open file `2.txt' for reading (No such file or directory)

似乎不支持UTF16LE编码文本

TOP

回复 5# 娜美

可是1楼代码里的没有2.txt啊,不知道你运行的是啥

TOP

本帖最后由 娜美 于 2023-8-15 15:46 编辑

回复 6# Five66

Sorry.  .  以bat运行后提示:
  1. gawk --locale=ZH_CN.UTF16 "/BBBBBBBBBF/" 1.txt
复制代码
  1. Usage: gawk [POSIX or GNU style options] -f progfile [--] file ...
  2. Usage: gawk [POSIX or GNU style options] [--] 'program' file ...
  3. POSIX options:          GNU long options: (standard)
  4.         -f progfile             --file=progfile
  5.         -F fs                   --field-separator=fs
  6.         -v var=val              --assign=var=val
  7. Short options:          GNU long options: (extensions)
  8.         -b                      --characters-as-bytes
  9.         -c                      --traditional
  10.         -C                      --copyright
  11.         -d[file]                --dump-variables[=file]
  12.         -D[file]                --debug[=file]
  13.         -e 'program-text'       --source='program-text'
  14.         -E file                 --exec=file
  15.         -g                      --gen-pot
  16.         -h                      --help
  17.         -i includefile          --include=includefile
  18.         -l library              --load=library
  19.         -L [fatal]              --lint[=fatal]
  20.         -n                      --non-decimal-data
  21.         -M                      --bignum
  22.         -N                      --use-lc-numeric
  23.         -o[file]                --pretty-print[=file]
  24.         -O                      --optimize
  25.         -p[file]                --profile[=file]
  26.         -P                      --posix
  27.         -r                      --re-interval
  28.         -S                      --sandbox
  29.         -t                      --lint-old
  30.         -V                      --version
  31. To report bugs, see node `Bugs' in `gawk.info', which is
  32. section `Reporting Problems and Bugs' in the printed version.
  33. gawk is a pattern scanning and processing language.
  34. By default it reads standard input and writes standard output.
  35. Examples:
  36.         gawk '{ sum += $1 }; END { print sum }' file
  37.         gawk -F: '{ print $1 }' /etc/passwd
  38. 请按任意键继续. . .
复制代码

TOP

回复 6# Five66

换了一个5.1版本gawk
   GNU Awk 5.1.0, API: 4.1 (GNU MPFR 4.1.0, GNU MP 6.2.0) (mingw-w64)Copyright (C) 1989, 1991-2020 Free Software Foundation.
  1. gawk --locale=zh_cn.utf16 "/BBBBBBBBBF/" 1.txt
复制代码
bat运行后提示:
"gawk": bad locale name specified by the option '--locale': zh_cn.utf16

TOP

那就试试过管道或者切换代码页
  1. type 1.txt|gawk "/BBBBBBBBBF/"
复制代码
  1. chcp 65001
  2. gawk "/BBBBBBBBBF/" 1.txt
复制代码

TOP

回复 8# 娜美

试试
--locale=zh_CN.Unicode
--locale=zh_CN.UNICODE
--locale=zh_CN.unicode
--locale=zh_CN.utf-16
--locale=zh_CN.UTF-16
--locale=zh_CN.Utf-16
--locale=zh_CN.utf-16LE
--locale=zh_CN.UTF-16LE
--locale=zh_CN.Utf-16LE
--locale=zh_CN.utf-16le
--locale=zh_CN.UTF-16le
--locale=zh_CN.Utf-16le
--locale=zh_CN.utf-16Le
--locale=zh_CN.UTF-16Le
--locale=zh_CN.Utf-16Le

TOP

回复 9# Five66

gawk似乎支持区域编码的

其中有一行提示
  1. gawk --h
  2. -Z locale-name          --locale=locale-name
复制代码

TOP

回复 10# Five66

都试了,
  1. "gawk": bad locale name specified by the option '--locale': zh_CN.Unicode
  2. "gawk": bad locale name specified by the option '--locale': zh_CN.UNICODE
  3. "gawk": bad locale name specified by the option '--locale': zh_CN.unicode
  4. "gawk": bad locale name specified by the option '--locale': zh_CN.utf-16
  5. "gawk": bad locale name specified by the option '--locale': zh_CN.UTF-16
  6. "gawk": bad locale name specified by the option '--locale': zh_CN.Utf-16
  7. "gawk": bad locale name specified by the option '--locale': zh_CN.utf-16LE
  8. "gawk": bad locale name specified by the option '--locale': zh_CN.UTF-16LE
  9. "gawk": bad locale name specified by the option '--locale': zh_CN.Utf-16LE
  10. "gawk": bad locale name specified by the option '--locale': zh_CN.utf-16le
  11. "gawk": bad locale name specified by the option '--locale': zh_CN.UTF-16le
  12. "gawk": bad locale name specified by the option '--locale': zh_CN.Utf-16le
  13. "gawk": bad locale name specified by the option '--locale': zh_CN.utf-16Le
  14. "gawk": bad locale name specified by the option '--locale': zh_CN.UTF-16Le
  15. "gawk": bad locale name specified by the option '--locale': zh_CN.Utf-16Le
  16. 请按任意键继续. . .
复制代码

TOP

这个呢
--locale=zh_CN.65001

TOP

gawk是支持utf16的吧,也许是你文件路径问题

TOP

回复 3# 娜美


试试这样:
  1. type 1.txt | gawk "/A+/" > 2.txt
复制代码
建议把文件链接更新到顶楼方便大家查看
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表