成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

awk系列:如何讓awk使用 Shell 變量

開源 系統(tǒng)運維
我們可以通過在 awk 命令中使用 shell 變量達(dá)到目的,在 awk 系列的這一節(jié)中,我們將學(xué)習(xí)如何讓 awk 使用 shell 變量,這些變量可能包含我們希望傳遞給 awk 命令的值。

當(dāng)我們編寫 shell 腳本時,我們通常會在腳本中包含其它小程序或命令,例如 awk 操作。對于 awk 而言,我們需要找一些將某些值從 shell 傳遞到 awk 操作中的方法。

我們可以通過在 awk 命令中使用 shell 變量達(dá)到目的,在 awk 系列的這一節(jié)中,我們將學(xué)習(xí)如何讓 awk 使用 shell 變量,這些變量可能包含我們希望傳遞給 awk 命令的值。

有兩種可能的方法可以讓 awk 使用 shell 變量:

1. 使用 Shell 引用

讓我們用一個示例來演示如何在一條 awk 命令中使用 shell 引用來替代一個 shell 變量。在該示例中,我們希望在文件 /etc/passwd 中搜索一個用戶名,過濾并輸出用戶的賬戶信息。

因此,我們可以編寫一個 test.sh 腳本,內(nèi)容如下:

  1. #!/bin/bash 
  2. ### 讀取用戶名 
  3. read -p "請輸入用戶名:" username 
  4. ### 在 /etc/passwd 中搜索用戶名,然后在屏幕上輸出詳細(xì)信息 
  5. cat /etc/passwd | awk "/$username/ "' { print $0 }' 

然后,保存文件并退出。

上述 test.sh 腳本中 awk 命令的說明:

 

  1. cat /etc/passwd | awk "/$username/ "' { print $0 }' 

"/$username/ ":該 shell 引用用于在 awk 命令中替換 shell 變量 username 的值。username 的值就是要在文件 /etc/passwd 中搜索的模式。

 

注意,雙引號位于 awk 腳本 '{ print $0 }' 之外。

接下來給腳本添加可執(zhí)行權(quán)限并運行它,操作如下:

  1. $ chmod  +x  test.sh 
  2. $ ./text.sh  

運行腳本后,它會提示你輸入一個用戶名,然后你輸入一個合法的用戶名并回車。你將會看到來自 /etc/passwd 文件中詳細(xì)的用戶賬戶信息,如下圖所示:

 

在 Password 文件中查找用戶名的 shell 腳本

2. 使用 awk 進(jìn)行變量賦值

和上面介紹的方法相比,該方法更加單,并且更好。考慮上面的示例,我們可以運行一條簡單的命令來完成同樣的任務(wù)。 在該方法中,我們使用 -v 選項將一個 shell 變量的值賦給一個 awk 變量。

首先,創(chuàng)建一個 shell 變量 username,然后給它賦予一個我們希望在 /etc/passwd 文件中搜索的名稱。

 

  1. username="aaronkilik" 

然后輸入下面的命令并回車:

 

  1. # cat /etc/passwd | awk -v name="$username" ' $0 ~ name {print $0}' 

 

使用 awk 在 Password 文件中查找用戶名

上述命令的說明:

  • -v:awk 選項之一,用于聲明一個變量
  • username:是 shell 變量
  • name:是 awk 變量

讓我們仔細(xì)瞧瞧 awk 腳本 ' $0 ~ name {print $0}' 中的 $0 ~ name。還記得么,當(dāng)我們在 awk 系列第四節(jié)中介紹 awk 比較運算符時,value ~ pattern 便是比較運算符之一,它是指:如果 value 匹配了 pattern 則返回 true。

cat 命令通過管道傳給 awk 的 output($0) 與模式 (aaronkilik) 匹配,該模式即為我們在 /etc/passwd 中搜索的名稱,***,比較操作返回 true。接下來會在屏幕上輸出包含用戶賬戶信息的行。

結(jié)論

我們已經(jīng)介紹了 awk 功能的一個重要部分,它能幫助我們在 awk 命令中使用 shell 變量。很多時候,你都會在 shell 腳本中編寫小的 awk 程序或命令,因此,你需要清晰地理解如何在 awk 命令中使用 shell 變量。

在 awk 系列的下一個部分,我們將會深入學(xué)習(xí) awk 功能的另外一個關(guān)鍵部分,即流程控制語句。所以請繼續(xù)保持關(guān)注,并讓我們堅持學(xué)習(xí)與分享。

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2016-08-10 16:07:08

awkLinux開源

2016-10-08 20:58:50

awkLinux編寫腳本

2016-07-29 15:13:00

awk文本處理工具編程

2016-08-29 20:51:16

awkLinux開源

2016-08-10 11:19:11

awkLinux開源

2010-03-04 15:28:01

Ubuntu Shel

2017-08-04 14:00:32

Linuxawk變量

2010-03-04 15:11:06

Ubuntu awk

2024-09-11 17:00:36

2022-03-20 10:40:11

Linuxawk 腳本

2019-11-26 14:00:58

awkLinux命令

2010-05-11 10:29:06

Unix awk

2019-12-03 10:00:19

awkLinux循環(huán)

2019-12-09 14:13:41

awkPython編程語言

2011-08-18 16:57:52

awk中文man

2018-03-28 17:51:24

LinuxUnix

2019-12-12 18:00:54

awkLinux開源

2010-05-11 12:53:58

Unix awk

2010-05-11 13:22:50

Unix awk

2025-06-25 07:08:09

grepsedawk
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 99久久久久久99国产精品免 | 欧美一级特黄aaa大片在线观看 | 香蕉国产在线视频 | 中文字幕在线一区 | 国产精品视频一区二区三 | 色偷偷888欧美精品久久久 | 国产精品 欧美精品 | 手机看片1| 日韩毛片视频 | 99视频免费在线 | 日韩精品无码一区二区三区 | 免费精品久久久久久中文字幕 | 欧美激情综合五月色丁香小说 | 色狠狠桃花综合 | 国产一区二区三区四区五区加勒比 | 日本不卡一区 | 国产成人在线播放 | 香蕉二区 | 可以看黄的视频 | 人人做人人澡人人爽欧美 | 国产精品五区 | 国产一二区视频 | 国产成人一区二区三区 | 在线免费看91 | 91国内外精品自在线播放 | 国产精品久久久久久吹潮 | www.日本精品 | 99久久精品免费 | 99在线资源 | 中文字幕国产 | 日韩一区二区在线视频 | 涩涩视频在线播放 | 天天看天天操 | 黄色大片免费网站 | 2一3sex性hd | 日本不卡免费新一二三区 | wwwxxx日本在线观看 | 亚洲欧美日韩国产综合 | 亚洲精品中文在线 | 国产一区视频在线 | 97精品久久 |