簡體   English   中英

Bash中的Awk數字比較

[英]Awk number comparsion in Bash

我正在嘗試從輸入文件號-src從10到15的行號打印記錄。 我嘗試使用下面的代碼,但無論行號如何,它都會打印所有記錄。

awk '{
count++
if ( $count >= 10 ) AND ( $count <= 15 )
 {
  printf "\n"  $0
 }
}' number_src

awk不是bash,就像C不是bash一樣,它們是單獨的工具/語言,具有自己的語法和語義:

awk 'NR>=10 && NR<=15' number_src

獲得Arnold Robbins的《有效的Awk編程》一書。

為什么腳本無法正常工作的兩個問題:

  • 邏輯AND應為&&
  • 在引用它時,請使用count作為變量名,而不是$count

這是一個工作版本:

awk '{
     count++
     if ( count >= 10  &&  count <= 15 )
     {
          print $0
     }
     }' numbers_src

如最快答案中所述,對於您的任務, NR是執行相同任務的awk

有關更多信息,請參見有關布爾表達式使用變量的相關文檔條目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM