什么! NR%2 在此命令中意味着什么?
What does ! and NR%2 means in this command?
我有这个命令,它会从第一行开始每隔两行打印一次:
ls -l | awk '!(NR%2){print}'
我理解第一部分 (ls -l) 中发生的事情,但我不理解“!(NR%2)”部分。
你能解释一下吗?
NR
是当前记录(行,你的情况)编号,从1开始,%
是取模运算符; NR%2
NR为偶数时为0,NR为奇数时为1。 !
是一个布尔否定,所以当 NR 可以被 2 整除时 !(NR%2)
计算结果为真,否则计算结果为假。所以每隔一条记录打印一次。
我有这个命令,它会从第一行开始每隔两行打印一次:
ls -l | awk '!(NR%2){print}'
我理解第一部分 (ls -l) 中发生的事情,但我不理解“!(NR%2)”部分。
你能解释一下吗?
NR
是当前记录(行,你的情况)编号,从1开始,%
是取模运算符; NR%2
NR为偶数时为0,NR为奇数时为1。 !
是一个布尔否定,所以当 NR 可以被 2 整除时 !(NR%2)
计算结果为真,否则计算结果为假。所以每隔一条记录打印一次。