标题: [文本处理] gawk 支持哪些编码? [打印本页]
作者: 娜美 时间: 2023-8-14 19:54 标题: gawk 支持哪些编码?
本帖最后由 娜美 于 2023-8-15 17:14 编辑
gawk 支持有那些编码
可以让gawk对UTF16编码文本直接处理吗
例,偿试不行- gawk --locale=ZH_CN.UTF16 "/A+/" 1
复制代码
UTF16测验文本
https://wwkt.lanzoul.com/i0yCB15dwcti
gawk5.1 版本
https://wwkt.lanzoul.com/iOZVa15gopbi
作者: Batcher 时间: 2023-8-14 20:25
回复 1# 娜美
请找个UTF16编码文本上传到网盘。另外说明一下你使用的gawk是哪个版本。
作者: 娜美 时间: 2023-8-14 21:05
本帖最后由 娜美 于 2023-8-14 21:11 编辑
回复 2# Batcher
我不知道那个gawk版本可以哦, 还请告知一下
我用的是
GNU Awk 4.1.0, API: 1.0
Copyright (C) 1989, 1991-2013 Free Software Foundation.- gawk "/BBBBBBBBBF/" 2.txt
复制代码
提示不能读取
gawk: fatal: cannot open file `2.txt' for reading (No such file or directory)
测验文本
https://wwkt.lanzoul.com/i0yCB15dwcti
作者: Five66 时间: 2023-8-15 14:12
额,1楼里的
例,偿试不行
gawk --locale=ZH_CN.UTF16 "/A+/" 1
中的不行是指啥,选项不行还是选项值不行还是文件不行还是其他的不行,至少应该把运行后的提示复制粘贴发出来吧
作者: 娜美 时间: 2023-8-15 15:27
本帖最后由 娜美 于 2023-8-15 15:32 编辑
回复 4# Five66
运行后提示:
gawk: fatal: cannot open file `2.txt' for reading (No such file or directory)
似乎不支持UTF16LE编码文本
作者: Five66 时间: 2023-8-15 15:37
回复 5# 娜美
可是1楼代码里的没有2.txt啊,不知道你运行的是啥
作者: 娜美 时间: 2023-8-15 15:40
本帖最后由 娜美 于 2023-8-15 15:46 编辑
回复 6# Five66
Sorry. . 以bat运行后提示:- gawk --locale=ZH_CN.UTF16 "/BBBBBBBBBF/" 1.txt
复制代码
- Usage: gawk [POSIX or GNU style options] -f progfile [--] file ...
- Usage: gawk [POSIX or GNU style options] [--] 'program' file ...
- POSIX options: GNU long options: (standard)
- -f progfile --file=progfile
- -F fs --field-separator=fs
- -v var=val --assign=var=val
- Short options: GNU long options: (extensions)
- -b --characters-as-bytes
- -c --traditional
- -C --copyright
- -d[file] --dump-variables[=file]
- -D[file] --debug[=file]
- -e 'program-text' --source='program-text'
- -E file --exec=file
- -g --gen-pot
- -h --help
- -i includefile --include=includefile
- -l library --load=library
- -L [fatal] --lint[=fatal]
- -n --non-decimal-data
- -M --bignum
- -N --use-lc-numeric
- -o[file] --pretty-print[=file]
- -O --optimize
- -p[file] --profile[=file]
- -P --posix
- -r --re-interval
- -S --sandbox
- -t --lint-old
- -V --version
-
- To report bugs, see node `Bugs' in `gawk.info', which is
- section `Reporting Problems and Bugs' in the printed version.
-
- gawk is a pattern scanning and processing language.
- By default it reads standard input and writes standard output.
-
- Examples:
- gawk '{ sum += $1 }; END { print sum }' file
- gawk -F: '{ print $1 }' /etc/passwd
- 请按任意键继续. . .
复制代码
作者: 娜美 时间: 2023-8-15 15:54
回复 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.- gawk --locale=zh_cn.utf16 "/BBBBBBBBBF/" 1.txt
复制代码
bat运行后提示:
"gawk": bad locale name specified by the option '--locale': zh_cn.utf16
作者: Five66 时间: 2023-8-15 15:55
那就试试过管道或者切换代码页- type 1.txt|gawk "/BBBBBBBBBF/"
复制代码
- chcp 65001
- gawk "/BBBBBBBBBF/" 1.txt
复制代码
作者: Five66 时间: 2023-8-15 16:01
回复 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
作者: 娜美 时间: 2023-8-15 16:02
回复 9# Five66
gawk似乎支持区域编码的
其中有一行提示- gawk --h
- -Z locale-name --locale=locale-name
复制代码
作者: 娜美 时间: 2023-8-15 16:07
回复 10# Five66
都试了,- "gawk": bad locale name specified by the option '--locale': zh_CN.Unicode
- "gawk": bad locale name specified by the option '--locale': zh_CN.UNICODE
- "gawk": bad locale name specified by the option '--locale': zh_CN.unicode
- "gawk": bad locale name specified by the option '--locale': zh_CN.utf-16
- "gawk": bad locale name specified by the option '--locale': zh_CN.UTF-16
- "gawk": bad locale name specified by the option '--locale': zh_CN.Utf-16
- "gawk": bad locale name specified by the option '--locale': zh_CN.utf-16LE
- "gawk": bad locale name specified by the option '--locale': zh_CN.UTF-16LE
- "gawk": bad locale name specified by the option '--locale': zh_CN.Utf-16LE
- "gawk": bad locale name specified by the option '--locale': zh_CN.utf-16le
- "gawk": bad locale name specified by the option '--locale': zh_CN.UTF-16le
- "gawk": bad locale name specified by the option '--locale': zh_CN.Utf-16le
- "gawk": bad locale name specified by the option '--locale': zh_CN.utf-16Le
- "gawk": bad locale name specified by the option '--locale': zh_CN.UTF-16Le
- "gawk": bad locale name specified by the option '--locale': zh_CN.Utf-16Le
- 请按任意键继续. . .
复制代码
作者: Five66 时间: 2023-8-15 16:20
这个呢
--locale=zh_CN.65001
作者: Five66 时间: 2023-8-15 16:35
gawk是支持utf16的吧,也许是你文件路径问题
作者: Batcher 时间: 2023-8-15 16:49
回复 3# 娜美
试试这样:- type 1.txt | gawk "/A+/" > 2.txt
复制代码
建议把文件链接更新到顶楼方便大家查看
作者: 娜美 时间: 2023-8-15 17:07
回复 娜美
试试这样:建议把文件链接更新到顶楼方便大家查看
Batcher 发表于 2023-8-15 16:49
顶楼已添加测验文件链接
我想弄明白gawk是否支持UTF16编码文本
因为gawk5.1版本有一个区域编码提示
- gawk --h
- 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.
- -Z locale-name --locale=locale-name
复制代码
作者: 娜美 时间: 2023-8-15 17:12
本帖最后由 娜美 于 2023-8-15 17:18 编辑
回复 13# Five66
试了不行, 但没任何错误提示, 但输出为空
这个是gawk5.1 版本, 你试试看
https://wwkt.lanzoul.com/iOZVa15gopbi
作者: 娜美 时间: 2023-8-16 13:51
gawk是支持utf16的吧,也许是你文件路径问题
Five66 发表于 2023-8-15 16:35
gawk不支持utf16编码文件 !
作者: Five66 时间: 2023-8-16 14:55
回复 18# 娜美
也不能说不支持,总之看下面的图
作者: Five66 时间: 2023-8-16 15:13
回复 19# Five66
还是说一下吧,图里用的就是1楼的gawk和txt
第一个命令,能读取并输出,只不过连utf16的bom也一起输出了
第二个命令,用了--locale选项,也能读取并输出,跟第一个命令相比,输出时连utf16的bom也没了
至于那些空格,就是utf16那些00字节,大概是gawk输出也是utf16,由于cmd编码默认ansi,输出时的utf16被cmd当成ansi了,然后00字节显示成空了
作者: 娜美 时间: 2023-8-16 15:30
回复 20# Five66
那怎么解嘛 中文是占了2个字节, ,要等gawk升级, 还是只能只样了
作者: Five66 时间: 2023-8-16 15:47
回复 21# 娜美
只是看起来那样,实际又没变,不使用cmd的输出重定向应该就行了吧
实在不行或者就是想用gawk,那就用cygwin或者mingw的gawk
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |