他の人が作成したファイルをデバッグ中に、次の行が見つかりました。
psql -U user -h $2 -p 5432 mydb -c "set search_path=$3;$4" | awk 'NR>3 {print l} {l=$0}'
私は何を知らない
awk 'NR>3 {print l} {l=$0}'
このラインは本当に大丈夫ですか?この行が何を意味するのかを説明できる人はいますか?{print l}
ベストアンサー1
コマンドを説明する簡単な入力:
$ seq 6 | awk 'NR>3 {print l} {l=$0}'
3
4
5
NR
現在のレコード番号の値を持つ特殊変数(この場合は行番号と同じ)。- これは
NR>3
行番号が3より大きいことを意味します。
- これは
{l=$0}
$0
現在の行(特殊変数)の内容をカスタム変数に保存します。l
NR>3 {print l}
条件が true の場合、変数の内容を印刷します。l
したがって、実際には、このコードは最初の2行と最後の行を除く入力のすべての行を印刷します。