awk求和的多方位探討

一、awk求和為空顯示0

在實際應用中,經常會遇到需要進行文件數值求和的情況。而在awk中,求和的函數為sum,使用方法為:

awk '{sum+=$1} END {print sum}' file.txt

可能會出現file.txt中不存在數值的情況,此時awk會輸出不知道的結果,而這無疑會影響程序的正確性。因此,我們可以在求和前加一個if判斷,當文件為空時,輸出0。代碼如下:

awk '{if(NR==1)sum=0;sum+=$1} END {if(NR==0)print "0";else print sum}' file.txt

當文件為空時,程序會輸出0,避免了結果不確定的情況。

二、awk求和取消科學記數法

在Linux中,如果輸出結果太大,會自動使用科學記數法輸出。這在輸出結果需要進行進一步計算時,會產生困擾。因此,我們需要取消科學記數法,輸出實際數值。

awk '{sum+=$1} END {printf "%.0f",sum}' file.txt

在printf中,%.0f的含義是保留小數點後0位,這樣就可以輸出實際數值。

三、awk求和為空添加0

在文件中,有些行是空行,這些空行無法直接相加,而更改文件很麻煩。我們可以在awk中,將空行的值默認為0,再進行求和。代碼如下:

awk '{if($1!=""){sum+=$1}else{sum+=0}} END {print sum}' file.txt

當行不為空時,將數值累加;當行為空時,將默認數值0累加。

四、awk求和sum

awk中,提供了一個內嵌變量sum,提供了快速求和的方式。使用方法和變量名均為sum,代碼如下:

awk '{sum+=$1} END {print sum}' file.txt

相較於手動累加,使用內嵌變量sum的方式更為簡便。

五、求kcrwf等於ak

在awk中,我們可以將一個值賦給變量,方便後續進行操作。在下例中,我們需要對$kcrwf的值進行變換,使其等於$ak。代碼如下:

awk '{$kcrwf=$ak} {sum+=$kcrwf} END {print sum}' file.txt

在對變量進行賦值後,我們使用$kcrwf進行操作即可。值得注意的是,當進行賦值操作後,需要在同一行進行操作,否則賦值無效。

六、awk求和顯示0

當文件中並不存在需要求和的數值時,awk會將結果默認輸出為空。但是,在某些場景下,我們需要將空值顯示為0,此時,我們可以加一個if語句進行判斷。代碼如下:

awk '{sum+=$1} END {if(sum==""){printf "0"}else{print sum}}' file.txt

當sum為””時,輸出0;否則輸出sum。這樣做的好處是,無論sum是否為空,都可以把控輸出結果。

七、linux awk求和

awk本身就是一款強大的文本處理工具,在Linux中使用也十分廣泛。對於求和操作而言,Linux中的awk同樣對於數字類型做了充足的支持。使用方法與Linux awk類似,只是將$0換成實際的數字,即可完成求和操作。代碼如下:

echo "1 2 3 4 5" | awk '{sum+=$1} END {print sum}'                     

在控制台中輸入一連串數字,使用管道傳入awk中,然後求和輸出結果。與Linux awk相比,調用方式更為簡便。

八、awk獲取指定字符串

在awk中,我們可以使用$0獲取整行的值,使用$1獲取第一個值。但是,當我們需要獲取一個字符串中的一部分時,我們需要使用substr函數。substr函數的使用方法為:

awk '{print substr($0,2,3)}' file.txt

整個substr函數分為三個參數,第一個參數表示字符串本身,第二個參數表示開始的位置,第三個參數表示結束的位置。例如上式中的substr($0,2,3),表示從字符串$0的第二位開始,往後取3個字符。

九、awk數組打印for循環

在awk中,我們可以使用數組對數據進行分析,同時使用for循環打印分析結果。使用數組時,我們可以將每個值存入數組中,使用for循環進行輸出。

awk '{counts[$1]++} END {for(word in counts){print word,counts[word]}}' file.txt

上式中,我們使用counts數組存儲行中每個值出現的次數。然後,在使用for循環遍歷counts數組,輸出結果。這樣,我們就可以清晰地看到每個值出現的次數。

十、awk正則表達式匹配數字

在實際應用中,我們可能只需要對文件中指定格式的數字進行求和。此時,我們可以使用正則表達式匹配指定格式的數字,再進行求和。

awk '{for(i=1;i<=NF;i++){if($i~/^[0-9]+(\.[0-9]+)?$/){sum+=$i}}} END {print sum}' file.txt

上式中,我們使用for循環匹配每個單元格中是否符合正則表達式格式,再進行累加。正則表達式的含義是:數字的整數部分可以使用0~9中任意數字,小數部分使用.開頭加任意數字。即匹配任意數值的格式。並且在匹配過程中避免了不合法字符的出現,增加了程序的穩健性。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/239342.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:16
下一篇 2024-12-12 12:16

相關推薦

  • NLP領域的多方位探索

    一、文本分類 文本分類是NLP領域中的一個重要任務,它的目的是自動將文本分配到不同的預定義類別中。文本分類技術可以在廣泛的領域中應用,例如情感分析、輿情監測等。 文本分類的一種常見…

    編程 2025-04-24
  • 深入淺出AWK -v參數

    一、功能介紹 AWK是一種強大的文本處理工具,它可以用於數據分析、報告生成、日誌分析等多個領域。其中,-v參數是AWK中一個非常有用的參數,它用於定義一個變量並賦值。下面讓我們詳細…

    編程 2025-04-24
  • display屬性的多方位應用

    一、display屬性概述 display屬性是CSS中常用的一個屬性,它定義了一個元素的盒模型類型,以及其在頁面上的布局形式。在HTML文檔中,每個HTML標籤都有一個默認的di…

    編程 2025-04-23
  • 多方位詳解日期格式化

    一、基本概念 日期格式化是指將日期類型轉換為字符串類型的過程,常見於前端頁面的數據展示。日期格式化通常需要指定日期的格式。在 JavaScript 中,可以使用 Date 對象來表…

    編程 2025-04-23
  • 小企鵝輸入法的多方位優勢

    一、智能識別與糾錯能力 小企鵝輸入法在智能化方面成績突出。它能夠聚合用戶常用的表情符號、詞組和詞庫,預測和推薦輸入內容,大大提升了用戶的輸入效率。同時,它還能夠通過機器學習實現糾錯…

    編程 2025-04-23
  • Unity Toggle組件的多方位探索

    一、Toggle是什麼 Toggle是unity中的一個UI組件,可以理解為開關或者複選框,用於實現用戶交互中的選擇功能,常用於設置界面、遊戲中的道具選擇、任務選項等。 Toggl…

    編程 2025-04-22
  • str.substring()——多方位詳解

    一、基本介紹 在JavaScript中,字符串是常見數據類型之一,而在我們操作字符串時,常常需要截取其中一部分。這時,str.substring()方法就派上了用場。該方法用於獲取…

    編程 2025-04-12
  • 多方位了解查看Linux版本命令

    一、使用uname命令查看Linux版本 在Linux系統中,使用uname命令可以查看Linux系統的版本和系統基本信息。 例如,輸入如下命令: uname -a 輸出結果類似於…

    編程 2025-04-12
  • matlab if函數:多方位解析

    一、if函數基本用法 if是matlab中常用的基礎控制語句之一,它根據判斷條件是否成立,決定程序接下來執行的語句。if函數的基本語法為: if (condition) state…

    編程 2025-04-12
  • Matlab編輯器的多方位探究

    一、編輯器基礎功能 Matlab作為一種用於科學計算的高級編程語言和交互式環境,其內置的編輯器自然是其一個重要且基礎的部分。作為一個編輯器,它的基礎功能包括文件的打開、編輯、保存、…

    編程 2025-04-12

發表回復

登錄後才能評論