[英]How to compare variable dynamically inside awk in bash?
我想動態比較兩個變量的值並將答案寫入文件:
#!bin/bash
Timestamp2="19:16:35"
cat find_thread |awk -F'.' '{print $1}'|awk '{for (i=1; i<=NF;i++) {if ( $i == $(Timestamp2) ) {print (i-1)}}}'>ThreadID
其中find_thread
文件具有以下內容:
8361 19:16:35.493540
8361 19:16:35.493594
8360 19:16:41.242314
8360 19:16:41.242343
8278 19:16:39.179931
8278 19:16:39.179973
如果我理解正確,你去吧:
awk -v ts="$Timestamp2" '$2 ~ "^" ts {print $1}' find_thread > ThreadID
說明:
-v
標志將$Timestamp2
放入變量ts
。 $2 ~ "^" ts
=第二列(例如19:16:35.493540
)應以ts
開頭 這是同一件事的另一個變種:
awk -F'[ .]' -v ts="$Timestamp2" '$2 == ts {print $1}' find_thread > ThreadID
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.