国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Linux Shell > 正文

linux shell awk獲得外部變量(變量傳值)簡介

2020-07-27 19:21:37
字體:
來源:轉載
供稿:網友
AWK 提供了極其強大的功能:
  1. 可以進行正則表達式的匹配
  2. 樣式裝入
  3. 流控制
  4. 數學運算符
  5. 進程控制語句
  6. 內置的變量和函數

可以把awk看作一門完全的程序設計語言,它處理文本的速度是快得驚人的。現在很多基于shell 日志分析工具都可以用它完成。設計簡單,速度表現很好。 涉及到以上六個方面內容,我會在以后文章中加以介紹。 這次主要說下,怎么樣把外部變量傳入到awk執行語句中。

一、基礎:

awk [ -F re] [parameter...] ['pattern {action}' ] [-f progfile][in_file...]

awk一般語法如上面所說。

如:

復制代碼 代碼如下:

[chengmo@localhost ~]$ echo 'awk code' | awk 'BEGIN{print "start/n============="}{print $0}END{print "=========/nend"}'
start
=============
awk code
=========
end

在 awk中兩個特別的表達式,BEGIN和END,這兩者都可用于pattern中(參考前面的awk語法),提供BEGIN和END的作用是給程序賦予初始狀態和在程序結束之后執行一些掃尾的工作。任何在BEGIN之后列出的操作(在{}內)將在awk開始掃描輸入之前執行,而END之后列出的操作將在掃描完全部的輸入之后執行。因此,通常使用BEGIN來顯示變量和預置(初始化)變量,使用END來輸出最終結果。

二、獲得外部變量方法

1、獲得普通外部變量

復制代碼 代碼如下:

[chengmo@localhost ~]$ test='awk code'                           
[chengmo@localhost ~]$ echo | awk  '{print test}' test="$test"
awk code
[chengmo@localhost ~]$ echo | awk  test="$test" '{print test}'
awk: cmd. line:1: fatal: cannot open file `{print test}' for reading (No such file or directory)

格式如:awk ‘{action}'  變量名=變量值   ,這樣傳入變量,可以在action中獲得值。 注意:變量名與值放到'{action}'后面。

[chengmo@localhost ~]$ echo | awk  'BEGIN{print test}' test="$test"         

 

這種變量在:BEGIN的action不能獲得。

2.BEGIN程序塊中變量

復制代碼 代碼如下:

[chengmo@localhost ~]$ test='awk code'                                
[chengmo@localhost ~]$ echo | awk -v test="$test" 'BEGIN{print test}'
awk code
[chengmo@localhost ~]$ echo | awk -v test="$test" '{print test}'    
awk code

格式如:awk

主站蜘蛛池模板: 桃源县| 平安县| 秦安县| 韶山市| 淳化县| 绥阳县| 凤台县| 金塔县| 彰化市| 左贡县| 营口市| 固安县| 绵阳市| 视频| 疏勒县| 浠水县| 南漳县| 石台县| 五河县| 兴山县| 峡江县| 胶州市| 南部县| 开平市| 泰宁县| 额敏县| 河池市| 武隆县| 建德市| 夏河县| 嘉荫县| 黎平县| 阜城县| 确山县| 澜沧| 台北县| 武冈市| 新化县| 嘉祥县| 珲春市| 沧州市|