以下命令按预期工作.我需要找到的是第一列或第三列中可用的线程ID.
# tail -1000 general.log | grep Connect | egrep -v "(abc|slave_user)"
2856057 Connect root@localhost on
111116 5:14:01 2856094 Connect root@localhost on
Run Code Online (Sandbox Code Playgroud)
如果该行以日期开头,请选择第三列,即2856094或第一列,即2856057
Expected output:
2856057
2856094
Run Code Online (Sandbox Code Playgroud)
另一种看待它的方法是,从右边开始计算时总是采用第四列:
awk '{ print $(NF-3) }'
Run Code Online (Sandbox Code Playgroud)
否则,如果日期确实是唯一可靠的指标,请尝试以下方法:
awk -v Date=$(date "+%y%m%d") '$1 == Date { print $3; next } { print $1 }'
Run Code Online (Sandbox Code Playgroud)