有没有其他方法可以在不使用awk打印的情况下打印$0?

有没有其他方法可以在不使用awk打印的情况下打印$0?,awk,Awk,我正在解决这个问题 在这个问题中,你必须用最少的字节数来解决它 我的代码:-{print$1%2?$1+2:$1+1}是21个字节 最好的解决方案是10字节 有没有其他方法可以在不使用print或printf语句的情况下打印$0,从而帮助我减少代码。缩短两个字符: {$0+=$0%2+1}1 “{$0%2?$0+=2:$0+=1}1” 1此处代替{print$0}1是一种模式,它匹配任何记录{print$0}是默认操作 已编辑。更好(-6个字符): {$0+=$0%2?2:1}1在AWK的模式

我正在解决这个问题

在这个问题中,你必须用最少的字节数来解决它

我的代码:-
{print$1%2?$1+2:$1+1}
是21个字节

最好的解决方案是10字节


有没有其他方法可以在不使用print或printf语句的情况下打印$0,从而帮助我减少代码。

缩短两个字符:

{$0+=$0%2+1}1
“{$0%2?$0+=2:$0+=1}1”

1
此处代替
{print$0}
1
是一种模式,它匹配任何记录<代码>{print$0}是默认操作

已编辑。更好(-6个字符):


{$0+=$0%2?2:1}1

在AWK的模式/操作语言中,当模式计算结果为true时,存在打印$0的隐式操作,但没有描述显式操作。关于您的挑战,请参见此示例(13个字符):


给“某个家伙”一个小提示,他在发布代码时比我快。

您所需要的只是条件,因为它永远不能为非零,因此将始终调用打印当前记录的默认操作:

awk '$0+=$0%2+1'

我还为此研究了一个技巧。。这个能打高尔夫球吗

{$0=or($0+1,1)}1

请你指导我一些网站,在那里我可以有这些awk的基本提示:)也请检查我的解决方案。。并指导我解决方案。谢谢你的代码。。很好的代码..真的很有帮助的技巧..:)请你给我介绍一些网站,在那里我可以为awk提供一些提示:)谢谢@Guru,一些家伙!Avinasse,查看以下资源:。简而言之,请阅读原始的Awk书籍、GNU Awk手册和O'reilly Awk书籍。我的$0.02。@taltman也请检查我的解决方案。。谢谢你的解决方案,也请检查我的解决方案。。请解释为什么您发布的解决方案是您问题的正确答案,而不是此解决方案或其他解决方案。不,我不是说我发布的问题的正确答案,你的是最短的代码,但仍然在链接中。最好的解决方案是10个字符n,我在想,并这样做了,但它的长度更长,所以我请求帮助,如果这可以更进一步。根据要求,一些反馈:“或”是特定于gawk的,该解决方案是16个字符,比我发布的解决方案长6个字符,所以这不是一个好的选择。顺便说一句——我不知道stackoverflow会让你为你自己的问题发布一个解决方案,然后让你选择这个解决方案作为正确答案,我觉得这是错的……我知道这是6个字符,有没有办法打高尔夫球或者。不,没有,至少没有足够的方法让它进入球场<代码>'$0=或($0+1,1)但它仍然是GNU awk特有的,比其他解决方案更长。