我正在使用 gawk (4.1.3),似乎我遇到了一个小问题。如果退格字符后面紧跟着换行符,则退格字符似乎不起作用。
awk 'BEGIN{for(i=1;i<=3;i++) printf("%d,",i); printf("\b\n")}'
给我1,2,3,
(最后一个逗号没有消失)
\n
即使我将其放入新函数中,这个问题也无法解决printf
。
但是,如果我在\b
和之间插入任何字符\n
(例如空格),它就会起作用。
如果我\n
再次删除它就可以了。
这是什么问题?
答案1
\b
只移动光标,不会覆盖文本。
要在 中写出逗号分隔的列表awk
,一种选择是创建正确的记录并打印它:
BEGIN {
OFS = ","
$0 = ""
for (i = 1; i <= 3; ++i)
$i = i
print
}
输出将是1,2,3
。
对于单行人群:
awk -vOFS=',' 'BEGIN { for (i = 1; i <= 3; ++i) $i = i; print }'
设置$0
为空字符串不是真的这里是必要的,因为我们只有一个BEGIN
块并且没有输入数据,所以我将其从单行变体中省略了。