调试别人写的文件时,发现一行
psql -U user -h $2 -p 5432 mydb -c "set search_path=$3;$4" | awk 'NR>3 {print l} {l=$0}'
Run Code Online (Sandbox Code Playgroud)
我不知道什么
awk 'NR>3 {print l} {l=$0}'
Run Code Online (Sandbox Code Playgroud)
这条线实际上是做什么的。谁能解释一下这条线是什么意思?{print l}
一个更简单的输入来解释命令:
$ seq 6 | awk 'NR>3 {print l} {l=$0}'
3
4
5
Run Code Online (Sandbox Code Playgroud)
NR 是一个特殊变量,它具有当前记录号的值(在这种情况下与行号相同)
NR>3意味着行号大于 3{l=$0}这是将当前行(特殊变量$0)的内容保存到用户定义的变量lNR>3 {print l} 当条件为真时,打印变量的内容 l因此,有效地,此代码打印输入中除前两行和最后一行之外的所有行。
| 归档时间: |
|
| 查看次数: |
96 次 |
| 最近记录: |