我需要捕获每个DELETE语句之间的行数。
DELETE FROM database.table
WHERE
@1=A
@2=B
@3=C
@4=D
@5=D
DELETE FROM database.table
WHERE
@1=A
@2=B
@3=C
@4=D
@5=D
DELETE FROM database.table
WHERE
@1=A
@2=B
@3=C
@4=D
@5=D
所以我会得到" 5"
的返回状态我尝试过以下方法:
awk '/DELETE/{exit}flag;/WHERE/{flag=1}' delete_statements | wc -l
但这只有在我删除文件中的第一行时才有效。
答案 0 :(得分:1)
要跳过awk中的第一行,只需添加条件:
awk 'NR>1 && /DELETE/{exit}flag;/WHERE/{flag=1}'
~~~~
答案 1 :(得分:1)
试试这个:
awk '/WHERE/{next} !/DELETE/{flag++} NR>1 && /DELETE/{print flag;exit}' file
5