作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
更新
这是一个错误,修复程序在 git repo 中可用现在。
我无法理解 FS
中的抑扬符被解释。
例如,这是我的 file
:
$ cat file
foo bar
baz quz
我写了这个 awk 脚本:
BEGIN{FS="^.";OFS="|"}{$1=$1}1
并期待这个输出:
|oo bar
|uz baz
但是用gawk我得到了这个:
$ gawk 'BEGIN{FS="^.";OFS="|"}{$1=$1}1' file
||o bar
||z quz
有了更多的点,它变得更奇怪了:
$ gawk 'BEGIN{FS="^..";OFS="|"}{$1=$1}1' file
||bar
||quz
$ gawk 'BEGIN{FS="^...";OFS="|"}{$1=$1}1' file
||r
||z
$ gawk 'BEGIN{FS="^....";OFS="|"}{$1=$1}1' file
|bar
|quz
我在
POSIX awk specification 中都找不到解释也不是
gawk manual .你们能帮我理解发生了什么吗?我在这里缺少什么?
最佳答案
这显然是一个错误,可能是内存泄漏。当您要求打印时 NF
之前,行为符合预期:
$ gawk 'BEGIN{FS="^.";OFS="|"; $0="foo"; $1=$1; print}'
||oo
$ gawk 'BEGIN{FS="^.";OFS="|"; $0="foo"; $1=$1; print NF; print}'
2
|oo
关于awk - FS 中的脱字符 (^) (gawk),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55706668/
我是一名优秀的程序员,十分优秀!