国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Linux shell編程學(xué)習(xí)筆記46:awk命令的由來(lái)、功能、格式、選項(xiàng)說(shuō)明、版權(quán)、版本

這篇具有很好參考價(jià)值的文章主要介紹了Linux shell編程學(xué)習(xí)筆記46:awk命令的由來(lái)、功能、格式、選項(xiàng)說(shuō)明、版權(quán)、版本。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Linux shell編程學(xué)習(xí)筆記46:awk命令的由來(lái)、功能、格式、選項(xiàng)說(shuō)明、版權(quán)、版本,麒麟操作系統(tǒng),編程資料,Linux世界,linux,學(xué)習(xí)筆記,awk命令,shell編程,shell腳本

0?前言

在編寫(xiě)Linux Shell腳本的過(guò)程中,我們經(jīng)常要對(duì)Linux命令執(zhí)行的結(jié)果進(jìn)行分析和提取,Linux也在文本分析和提取這方面提供了不少的命令。比如我們之前研究過(guò)的cut命令。

Linux shell編程學(xué)習(xí)筆記43:cut命令https://blog.csdn.net/Purpleendurer/article/details/135730679?spm=1001.2014.3001.5501

除了cut命令,我們還需要繼續(xù)研究其他相關(guān)的命令。

今天我們先研究 awk命令。

1 awk命令的由來(lái)

AWK 命令是取了三位創(chuàng)建人??Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的?姓氏(Family Name) 的首字符來(lái)構(gòu)成。

實(shí)際上 AWK 擁有自己的程序設(shè)計(jì)語(yǔ)言 ——“樣式掃描和處理語(yǔ)言”,這種語(yǔ)言允許您創(chuàng)建簡(jiǎn)短的程序,這些程序讀取輸入文件、為數(shù)據(jù)排序、處理數(shù)據(jù)、對(duì)輸入執(zhí)行計(jì)算以及生成報(bào)表,還有無(wú)數(shù)其他的功能。

2 awk命令的功能、格式和選項(xiàng)說(shuō)明

我們可以使用 awk --help命令查看 awk 命令的幫助信息。

purpleEndurer @ bash ~ $ awk --help
Usage: awk [POSIX or GNU style options] -f progfile [--] file ...
Usage: awk [POSIX or GNU style options] [--] 'program' file ...
POSIX options: ? ? ? ? ?GNU long options: (standard)
? ? ? ? -f progfile ? ? ? ? ? ? --file=pro

To report bugs, see node `Bugs' in `gawk.info', which is
section `Reporting Problems and Bugs' in the printed version.

gawk is a pattern scanning and processing language.
By default it reads standard input and writes standard output.

Examples:
? ? ? ? gawk '{ sum += $1 }; END { print sum }' file
? ? ? ? gawk -F: '{ print $1 }' /etc/passwd

purpleEndurer @ bash ~ $?

Linux shell編程學(xué)習(xí)筆記46:awk命令的由來(lái)、功能、格式、選項(xiàng)說(shuō)明、版權(quán)、版本,麒麟操作系統(tǒng),編程資料,Linux世界,linux,學(xué)習(xí)筆記,awk命令,shell編程,shell腳本

2.1 awk命令的功能

awk是處理文本文件的一個(gè)應(yīng)用程序,它依次處理文件的每一行,并讀取里面的每一個(gè)字段。

對(duì)于日志、CSV 那樣的每行格式相同的文本文件,awk可能是最方便的工具。

2.2 awk命令的格式

awk [選項(xiàng)] -f 腳本文件 [--] 文件?...

?或

awk [選項(xiàng)] [--] '程序' 文件?...

2.3 awk命令的選項(xiàng)

POSIX 選項(xiàng) GNU 長(zhǎng)選項(xiàng): (標(biāo)準(zhǔn) ) 功能 備注
-f progfile --file=progfile

從腳本文件中讀取awk程序源代碼,而不是從第一個(gè)?非選項(xiàng)?參數(shù)中讀取。此選項(xiàng)可以多次給出;AWK 程序由每個(gè)指定源文件的內(nèi)容串聯(lián)組成。

以 -f 命名的文件被視為開(kāi)頭有“@namespace ”awk“。
-F fs --field-separator=fs 指定輸入文件折分符,fs是一個(gè)字符串或者是一個(gè)正則表達(dá)式,如-F
-v var=val --assign=var=val 在程序開(kāi)始執(zhí)行之前,將變量 var 設(shè)置為值 val

此類變量值在 BEGIN 規(guī)則中可用。

使用 -v 設(shè)置內(nèi)置變量的值可能會(huì)導(dǎo)致令人驚訝的結(jié)果。AWK 將根據(jù)需要重置這些變量的值,可能會(huì)忽略您可能給出的任何初始值。

短選項(xiàng) GNU長(zhǎng)選項(xiàng): (擴(kuò)展) 功能
-b --characters-as-bytes

使 gawk 將所有輸入數(shù)據(jù)視為單字節(jié)字符。此外,所有使用 print 或 printf 寫(xiě)入的輸出都被視為單字節(jié)字符。

通常,gawk 遵循 POSIX 標(biāo)準(zhǔn),并嘗試根據(jù)當(dāng)前語(yǔ)言環(huán)境處理其輸入數(shù)據(jù)。這通常涉及將多字節(jié)字符轉(zhuǎn)換為寬字符(內(nèi)部),如果輸入數(shù)據(jù)不包含有效的多字節(jié)字符,則可能會(huì)導(dǎo)致問(wèn)題或混淆。此選項(xiàng)是告訴 gawk “放開(kāi)我的數(shù)據(jù)!“

-c --traditional 指定兼容模式,在該模式下,禁用 awk 語(yǔ)言的 GNU 擴(kuò)展,以便 gawk 的行為與 BWK 一樣
-C --copyright 打印版權(quán)信息
-d[file] --dump-variables[=file]

將全局變量、其類型和最終值的排序列表打印到文件中。如果未提供任何文件,此列表將打印到當(dāng)前目錄中名為 awkvars.out 的文件中。

如果提供了 file,則 -d 和 file 之間不允許有空格。

-e 'program-text' --source='program-text'

使用program-text作為源代碼,可與-f命令混用。

此選項(xiàng)允許您將文件中的源代碼與您在命令行中輸入的源代碼混合使用。

當(dāng)您要從命令行程序使用的庫(kù)函數(shù)時(shí),這特別有用

-E file --exec=file

與 -f 類似,從文件中讀取 awk 程序文本。

與 -f 有兩個(gè)區(qū)別:

此選項(xiàng)終止選項(xiàng)處理;命令行上的任何其他內(nèi)容都直接傳遞給 AWK 程序。
不允許使用“var=value”形式的命令行變量賦值。

對(duì)于通過(guò) URL 傳遞參數(shù)的萬(wàn)維網(wǎng) CGI 應(yīng)用程序,此選項(xiàng)尤其必要。用此選項(xiàng)可防止惡意(或其他)用戶將選項(xiàng)、分配或 awk 源代碼(通過(guò) -e)傳遞給 CGI 應(yīng)用程序。

?此選項(xiàng)應(yīng)與 '#!' 腳本一起使用(請(qǐng)參閱可執(zhí)行 awk 程序),如下所示:

#!/usr/local/bin/gawk -E

-g --gen-pot 分析源程序,并在標(biāo)準(zhǔn)輸出上為所有標(biāo)記為翻譯的字符串常量生成一個(gè) GNU gettext 可移植對(duì)象模板文件
-h --help 顯示幫助信息
-L [fatal] --lint[=fatal]

警告可疑或不可移植到其他 awk 實(shí)現(xiàn)的構(gòu)造。如果提供了值,則 -L 和值之間不允許有空格。當(dāng) gawk 第一次讀取您的程序時(shí),會(huì)發(fā)出一些警告。其他的則在運(yùn)行時(shí)發(fā)出,因?yàn)槌绦蛘趫?zhí)行。

-n --non-decimal-data

啟用輸入數(shù)據(jù)中八進(jìn)制和十六進(jìn)制值的自動(dòng)解釋。

注意:此選項(xiàng)可能會(huì)嚴(yán)重破壞舊程序。請(qǐng)小心使用。另請(qǐng)注意,此選項(xiàng)可能會(huì)在 gawk 的未來(lái)版本中消失。

-O --optimize

啟用 gawk 對(duì)程序內(nèi)部表示的默認(rèn)優(yōu)化。目前,這僅包括簡(jiǎn)單的恒定折疊。

默認(rèn)情況下,優(yōu)化處于啟用狀態(tài)。此選項(xiàng)主要用于向后兼容。但是,它可用于取消早期 -s 選項(xiàng)的效果(請(qǐng)參閱此列表的后面部分)。

-p[file] --profile[=file]

啟用 awk 程序的分析。

暗示 --no-optimize。默認(rèn)情況下,配置文件在名為 awkprof.out 的文件中創(chuàng)建。可選的 file 參數(shù)允許您為配置文件指定不同的文件名。如果提供了 file,則 -p 和 file 之間不允許有空格。

配置文件在左邊距包含程序中每個(gè)語(yǔ)句的執(zhí)行計(jì)數(shù),以及每個(gè)函數(shù)的函數(shù)調(diào)用計(jì)數(shù)。

-P --posix 打開(kāi)兼容模式。但有以下限制,不識(shí)別:/x、函數(shù)關(guān)鍵字、func、換碼序列以及當(dāng)fs是一個(gè)空格時(shí),將新行作為一個(gè)域分隔符;操作符和=不能代替^和^=;fflush無(wú)效。
-r --re-interval 允許間隔正則表達(dá)式的使用,參考(grep中的Posix字符類),如括號(hào)表達(dá)式[[:alpha:]]。
-S --sandbox 禁用 system() 函數(shù)、使用 getline 的輸入重定向、使用 print 和 printf 的輸出重定向以及動(dòng)態(tài)擴(kuò)展。此外,不允許向 ARGV 添加 gawk 開(kāi)始運(yùn)行時(shí)不存在的文件名。當(dāng)您想要從可疑來(lái)源運(yùn)行 awk 腳本并需要確保腳本無(wú)法訪問(wèn)您的系統(tǒng)(指定的輸入數(shù)據(jù)文件除外)時(shí),這特別有用。
-t --lint-old 打印關(guān)于不能向傳統(tǒng)unix平臺(tái)移植的結(jié)構(gòu)的警告。
-V --version 打印版本信息。

2.4?其它說(shuō)明

幾乎所有 Linux 系統(tǒng)都自帶awk這個(gè)程序。

awk有3個(gè)不同版本: awk、nawk和gawk,如果沒(méi)有作特別說(shuō)明,一般指gawk,gawk 是 AWK 的 GNU 版本。

3 awk命令基本用法使用實(shí)例

3.1?awk -C:打印版權(quán)信息

purpleEndurer @ bash ~ $ awk -C
Copyright (C) 1989, 1991-2012 Free Software Foundation.

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ?See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see http://www.gnu.org/licenses/.
purpleEndurer @ bash ~ $?

Linux shell編程學(xué)習(xí)筆記46:awk命令的由來(lái)、功能、格式、選項(xiàng)說(shuō)明、版權(quán)、版本,麒麟操作系統(tǒng),編程資料,Linux世界,linux,學(xué)習(xí)筆記,awk命令,shell編程,shell腳本

3.2?awk -V:打印版本信息

purpleEndurer @ bash ~ $ awk -V
GNU Awk 4.0.2
Copyright (C) 1989, 1991-2012 Free Software Foundation.

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ?See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see http://www.gnu.org/licenses/.
purpleEndurer @ bash ~ $?

Linux shell編程學(xué)習(xí)筆記46:awk命令的由來(lái)、功能、格式、選項(xiàng)說(shuō)明、版權(quán)、版本,麒麟操作系統(tǒng),編程資料,Linux世界,linux,學(xué)習(xí)筆記,awk命令,shell編程,shell腳本文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-857007.html

到了這里,關(guān)于Linux shell編程學(xué)習(xí)筆記46:awk命令的由來(lái)、功能、格式、選項(xiàng)說(shuō)明、版權(quán)、版本的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Linux shell編程學(xué)習(xí)筆記36:read命令

    Linux shell編程學(xué)習(xí)筆記36:read命令

    ?*更新日志? *2023-12-18 1.根據(jù)[美] 威廉·肖特斯 (Willian?shotts)所著《Linux命令行大全(第2版)》 ? ? ? ? ? ? ? ? ? ? ? ? 更新了-e、-i、-r選項(xiàng)的說(shuō)明 ? ? ? ? ? ? ? ? ? ? ? 2.更新了 2.8 的實(shí)例,增加了gif動(dòng)圖 ? ? ? ? ? ? ? ? ? ? ? 3.補(bǔ)充了-i的應(yīng)用實(shí)例 2.12 目錄 目錄

    2024年02月04日
    瀏覽(24)
  • Linux shell編程學(xué)習(xí)筆記33:type 命令

    Linux shell編程學(xué)習(xí)筆記33:type 命令

    ?目錄 0?引言 1 type?命令的功能和格式 1.1?type命令的功能 1.2 type?命令的格式 2 type命令用法實(shí)例 2.1用type命令查看shell內(nèi)置命令(以echo命令為例) 2.2?用type命令查看別名(以ls命令為例) 2.3 用type命令同時(shí)查看shell內(nèi)置命令和別名(以echo和ls命令為例) 2.4?用type命令查看外部

    2024年02月03日
    瀏覽(24)
  • Linux shell編程學(xué)習(xí)筆記37:readarray命令和mapfile命令

    Linux shell編程學(xué)習(xí)筆記37:readarray命令和mapfile命令

    ? 目錄 ? 0 前言 1? readarray命令的格式和功能 1.1 命令格式 1.2?命令功能 1.3?注意事項(xiàng) 2?命令應(yīng)用實(shí)例 2.1 從標(biāo)準(zhǔn)輸入讀取數(shù)據(jù)時(shí)不指定數(shù)組名,則數(shù)據(jù)會(huì)保存到MAPFILE數(shù)組中 2.2 從標(biāo)準(zhǔn)輸入讀取數(shù)據(jù)并存儲(chǔ)到指定的數(shù)組 2.3?使用 -O?選項(xiàng)指定起始下標(biāo) 2.4?用-n指定有效行數(shù) 2.5?

    2024年02月03日
    瀏覽(24)
  • Linux shell編程學(xué)習(xí)筆記45:uname命令-獲取Linux系統(tǒng)信息

    Linux shell編程學(xué)習(xí)筆記45:uname命令-獲取Linux系統(tǒng)信息

    linux 有多個(gè)發(fā)行版本,不同的版本都有自己的版本號(hào)。 如何知道自己使用的Linux的系統(tǒng)信息呢? 使用uname命令、hostnamectl命令,或者通過(guò)查看/proc/version文件來(lái)了解這些信息。 我們先看看uname命令。 我們可以使用命令 uname --help命令 查看它的用法: purpleEndurer @ ?bash ~ $ uname --

    2024年04月10日
    瀏覽(27)
  • Linux shell編程學(xué)習(xí)筆記6:查看和設(shè)置變量的常用命令

    Linux shell編程學(xué)習(xí)筆記6:查看和設(shè)置變量的常用命令

    上節(jié)我們介紹了變量的變量命名規(guī)則、變量類型、使用變量時(shí)要注意的事項(xiàng),今天我們學(xué)習(xí)一下查看和設(shè)置變量的一些常用命令,包括變量的提升,有些命令在之前的實(shí)例中已經(jīng)使用過(guò)了。 語(yǔ)法格式:echo [參數(shù)] [輸出內(nèi)容] 常用參數(shù): -e:支持反斜線控制的字符轉(zhuǎn)換(具體參

    2024年02月07日
    瀏覽(22)
  • Linux shell編程學(xué)習(xí)筆記31:alias 和 unalias 操作 命令別名

    Linux shell編程學(xué)習(xí)筆記31:alias 和 unalias 操作 命令別名

    目錄 0?前言 1 定義別名 2?查看別名 2.1?查看所有別名 2.2?查看某個(gè)別名 2.2.1? alias?別名 2.2.2 alias | grep?別名字符串 2.2.3?使用 Ctrl+Alt+E 組合鍵 3 unalias:刪除別名 4 如何執(zhí)行命令本身而非別名 4.1 方法1:使用 Ctrl+Alt+E 組合鍵? unalias 4.2 方法2:在命令前加上命令文件的絕對(duì)路徑

    2024年02月05日
    瀏覽(28)
  • 【Linux】shell編程—awk編輯器

    【Linux】shell編程—awk編輯器

    提示:文章寫(xiě)完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔 AWK是一種優(yōu)良的文本處理工具。它不僅是 Linux 中也是任何環(huán)境中現(xiàn)有的功能最強(qiáng)大的數(shù)據(jù)處理引擎之一。這種編程及數(shù)據(jù)操作語(yǔ)言的最大功能取決于一個(gè)人所擁有的知識(shí) 可以進(jìn)行樣式裝入、流控制、數(shù)

    2024年02月06日
    瀏覽(25)
  • 【Linux編程Shell自動(dòng)化腳本】03 shell四劍客(find、sed、grep、awk)

    語(yǔ)法格式 參數(shù)說(shuō)明 : path 是要查找的目錄路徑,可以是一個(gè)目錄或文件名,也可以是多個(gè)路徑,多個(gè)路徑之間用空格分隔,如果未指定路徑,則默認(rèn)為當(dāng)前目錄。 expression 是可選參數(shù),用于指定查找的條件,可以是文件名、文件類型、文件大小等等。 1. 常用expression 以下列出

    2024年02月09日
    瀏覽(27)
  • Linux shell編程學(xué)習(xí)筆記44:編寫(xiě)一個(gè)腳本,將md5sum命令執(zhí)行結(jié)果保存到變量中,進(jìn)而比較兩個(gè)文件內(nèi)容是否相同

    Linux shell編程學(xué)習(xí)筆記44:編寫(xiě)一個(gè)腳本,將md5sum命令執(zhí)行結(jié)果保存到變量中,進(jìn)而比較兩個(gè)文件內(nèi)容是否相同

    在? Linux shell編程學(xué)習(xí)筆記42:md5sum https://blog.csdn.net/Purpleendurer/article/details/137125672?spm=1001.2014.3001.5501 中,我們提到編寫(xiě)一個(gè)在Linux系統(tǒng)下比較兩個(gè)文件內(nèi)容是否相同的腳本。 基本思路是: 其中有兩個(gè)難點(diǎn): 1.文件的md5值的獲取 2.md5值的比較 對(duì)于第1個(gè)難點(diǎn),我們的解決辦法是

    2024年04月10日
    瀏覽(28)
  • Linux shell編程學(xué)習(xí)筆記27:tput

    Linux shell編程學(xué)習(xí)筆記27:tput

    除了stty命令,我們還可以使用tput命令來(lái)更改終端的參數(shù)和功能。 tput 命令的主要功能有:移動(dòng)更改光標(biāo)、更改文本顯示屬性(如顏色、下劃線、粗體),清除屏幕特定區(qū)域等。 ?tput [選項(xiàng)] [參數(shù)] 命令格式: ? tput setab n?:?設(shè)置背景色,set text?attributes background color ? tput

    2024年02月05日
    瀏覽(26)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包