作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 awk (mac os x) 只打印 n 个字符及更长的行。
如果我在如下所示的文本文件(strings.txt)上尝试:
four
foo
bar
föö
bår
fo
ba
fö
bå
我运行这个 awk 脚本:
awk ' { if( length($0) >= 3 ) print $0 } ' <strings.txt
输出为:
four
foo
bar
föö
bår
fö
bå
(最后两行不应被打印)。似乎包含元音变音字符(å、ä、ö...)的单词算作两个字符。
(输入文件以UTF8格式保存。)
最佳答案
BSD awk
(又名 BWK awk
),预装在 macOS 上(从 macOS 10.13 开始仍然如此),遗憾的是 - <强>不支持 Unicode。
您的选择是:
如果您知道所涉及的字符适合单字节编码,例如 ISO-8859-1,您可以使用 iconv
如下:
iconv -f UTF-8 -t ISO-8859-1 file | awk 'length >= 3' | iconv -f ISO-8859-1 -t UTF-8
awk
实现,例如 gawk
(GNU Awk) 或 mawk
;例如,通过 Homebrew :
酿造信息gawk
酿造信息mawk
使用不同的预装工具,支持 Unicode,例如 sed
:
sed -n '/^.\{3,\}/p' file
关于string - awk åäö 变音字符的长度为 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7578497/
我想解析以下 xml 结构: 为了解析这个 element name="?????? 结构,我按以下方式使用 XPath: XPath xPath
我在 OSX 机器上运行 Python 2.7。我正在尝试在 smb 共享上执行 os.walk。 for root, dirnames, filenames in os.walk("./test")
我是一名优秀的程序员,十分优秀!