日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
利用Linux Awk技巧,簡單高效地提取數(shù)字 (linux awk 提取數(shù)字)

在日常的數(shù)據(jù)處理中,經(jīng)常需要從文本中提取數(shù)字,并對其進行統(tǒng)計、計算等操作。但是,文本文件中的數(shù)字往往夾雜著大量無用的字符,如字母、符號等,而手動處理這些數(shù)字不僅繁瑣而且易出錯。那么,如何呢?

創(chuàng)新互聯(lián)從2013年創(chuàng)立,先為撫松等服務(wù)建站,撫松等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為撫松企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

一、初識Linux Awk命令

1.1 什么是Awk命令

Awk命令是在Unix和Linux常用的一個文本處理工具,可以將文本內(nèi)容按照指定的規(guī)則進行匹配、查找、處理等操作。其基本語法如下:

“`awk ‘pattern { action }’ filename“`

其中,pattern表示匹配模式,action表示匹配成功后執(zhí)行的操作,filename表示要處理的文件名。通常,Awk命令會自動讀取標準輸入,即鍵盤輸入或文件輸入。

1.2 Awk命令的基本功能

在使用Awk命令時,需要掌握一些基本的功能和概念:

– 分隔符:Awk命令默認的分隔符是空格和制表符,可以使用-F參數(shù)指定自定義分隔符;

– 字段:Awk命令將每一行文本按照分隔符分割成若干個字段,可以使用$1、$2等表示第1、2個字段;

– 模式匹配:可以使用正則表達式對文本進行模式匹配;

– 操作符:可以使用簡單的四則運算等操作符對字段進行計算;

– 變量:Awk命令內(nèi)置了一些變量,如NR表示當前行號,NF表示當前行的字段數(shù)等。

二、利用Awk命令提取數(shù)字

在使用Awk命令提取數(shù)字時,通常需要按照以下步驟進行:

2.1 根據(jù)需求制定匹配模式

根據(jù)要提取的數(shù)字的特征制定匹配模式。例如,要提取文本中的所有整數(shù),可以使用正則表達式`/[0-9]+/`。

2.2 使用Awk命令進行匹配

然后,使用Awk命令進行匹配,找到符合模式的文本內(nèi)容。例如,使用以下命令可以從名為input.txt的文件中找到所有整數(shù):

“`awk ‘/[0-9]+/ { print $0 }’ input.txt“`

其中,`/[0-9]+/`表示匹配所有整數(shù),`print $0`表示將匹配到的整行輸出。

2.3 提取匹配結(jié)果中的數(shù)字

從匹配結(jié)果中提取數(shù)字。由于匹配結(jié)果包含了大量的其他字符,需要使用Awk命令的計算功能將數(shù)字提取出來。例如,使用以下命令將匹配結(jié)果中的數(shù)字相加:

“`awk ‘/[0-9]+/ { sum+=$0 } END { print “Total: “, sum }’ input.txt“`

其中,`sum+=$0`表示將匹配到的數(shù)字相加并賦值給變量sum,`END { print “Total: “, sum }`表示在處理完整個文件后輸出變量sum的值。

三、實戰(zhàn)案例:提取日志中的響應(yīng)時間

下面通過一個實戰(zhàn)案例來演示如何利用Awk命令提取日志中的響應(yīng)時間。

假設(shè)有以下日志文件log.txt:

“`

2023-05-01 12:00:01 INFO: Request 1 – Start

2023-05-01 12:00:02 INFO: Request 1 – End (time=100ms)

2023-05-01 12:00:03 INFO: Request 2 – Start

2023-05-01 12:00:04 WARN: Request 3 – Timeout

2023-05-01 12:00:05 INFO: Request 2 – End (time=120ms)

2023-05-01 12:00:06 INFO: Request 3 – Start

2023-05-01 12:00:07 INFO: Request 3 – End (time=150ms)

“`

要求從中提取出所有響應(yīng)時間,并計算平均響應(yīng)時間。

步驟如下:

3.1 制定匹配模式

根據(jù)日志格式,響應(yīng)時間的格式為`(time=xxxms)`,因此制定匹配模式為`/(time=[0-9]+ms)/`。

3.2 使用Awk命令進行匹配

使用以下命令匹配響應(yīng)時間:

“`awk ‘/(time=[0-9]+ms)/ { print $0 }’ log.txt“`

其中,`/(time=[0-9]+ms)/`表示匹配響應(yīng)時間,`print $0`表示將匹配到的整行輸出。

3.3 提取匹配結(jié)果中的數(shù)字并計算

使用以下命令將匹配結(jié)果中的數(shù)字相加,并統(tǒng)計平均響應(yīng)時間:

“`awk ‘/(time=[0-9]+ms)/ { sum+=$0; count++ } END { print “Total: “, sum; print “Average: “, sum/count }’ log.txt“`

其中,`sum+=$0`表示將匹配到的響應(yīng)時間相加并賦值給變量sum,`count++`表示統(tǒng)計響應(yīng)時間個數(shù),`END { print “Total: “, sum; print “Average: “, sum/count }`表示在處理完整個文件后輸出變量sum和平均值。

最終輸出結(jié)果為:

“`

Total: 370ms

Average: 123.333ms

“`

四、

本文介紹了利用Linux Awk技巧進行數(shù)字提取的方法,主要包括制定匹配模式、使用Awk命令進行匹配、提取匹配結(jié)果中的數(shù)字三個步驟。同時,通過實戰(zhàn)案例展示了如何從日志中提取響應(yīng)時間,并計算平均響應(yīng)時間。Awk命令具有靈活高效的文本處理能力,值得我們在日常工作中多加應(yīng)用和深入學(xué)習(xí)。

相關(guān)問題拓展閱讀:

  • 如何在Linux中使用awk命令

如何在Linux中使用awk命令

awk實例

1、cat /etc/passwd|awk -F: ‘{print $1}’

2、linux的awk一般都是gawk,/bin/awk -> gawk

3、awk ‘/abc/’ file.txt 顯示文件中包含abc行。類似grep abc a.txt

4、awk ‘{print NR,NF,$1,$NF,}’ file.txt按空格分隔列,顯示當前記錄號、域數(shù)和每一行的之一列和最后一列。

-F參數(shù)可以設(shè)置分割參數(shù),例如按:分割

awk -F: ‘{print $1}’ /etc/passwd

或者cat file|awk -F “|” ‘{print $1}’

5、awk編程語言

cat v.txt|awk ‘{print length($1)}’

6、awk中使用NR和FNR,一般在awk處理多個文件時,NR==FNR才有意義

NF 當前記錄中的字段數(shù)。

NR 當前型磨記錄數(shù)。

FNR同NR,但相對于當前文件。

awk ‘{print NR,FNR}’ test.txt test2.txt

awk ‘{if(NR==FNR){a=$1;}else{print $1,a}}’ b.txt a.txt

7、打此租備印奇數(shù)行與偶數(shù)行

awk ‘NR%2’ test.txt

awk ‘!(NR%2)’ test.txt

8、殺死森毀tomcat的stop.sh腳本

#!/bin/sh

ps -ef| grep tomcat |grep -v grep | awk ‘{print $2}’ |xargs kill -9

9、打印前7列

cat a.txt|awk ‘{NF=7}1’ >> b.txt

tail -f access.log|awk ‘NF=7′ OFS=’\t’ >> b.txt

cut -d”,” -f3-6 urfile

awk:用于緩脊吵一行中分成數(shù)個“字段”來處理。適合處理

小型數(shù)據(jù)。

運行模式:awk

‘條件類型1{動作1}

條件類型2{動作2}

…’

filename

#

last

|

awk

‘{print

$1

“\t”

$3}’

大于

=

大于或等于

小于或等于

==

等于

!=

不等于

范例:

cat

/etc/passwd

|

awk

‘{FS=”:”}

$3

{print

$1

“\t”

$3}’

文件/etc/passwd是以”:”分隔的,查看第三欄小于10的數(shù)據(jù),并且只顯示帳號與第三欄

關(guān)于linux awk 提取數(shù)字的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

成都網(wǎng)站營銷推廣找創(chuàng)新互聯(lián),全國分站站群網(wǎng)站搭建更好做SEO營銷。
創(chuàng)新互聯(lián)(www.cdcxhl.com)四川成都IDC基礎(chǔ)服務(wù)商,價格厚道。提供成都服務(wù)器托管租用、綿陽服務(wù)器租用托管、重慶服務(wù)器托管租用、貴陽服務(wù)器機房服務(wù)器托管租用。


本文題目:利用Linux Awk技巧,簡單高效地提取數(shù)字 (linux awk 提取數(shù)字)
瀏覽路徑:http://m.5511xx.com/article/dphcggj.html