最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

awk簡介與學(xué)習(xí)筆記收集

 更新時間:2008年04月24日 19:58:23   作者:  
Awk學(xué)習(xí)筆記 整理:Jims of 肥肥世家 <jims.yang@gmail.com>

gsub函數(shù)作用如sub,但它在整個文檔中進行匹配。格式如下:

            gsub (regular expression, substitution string)
            gsub (regular expression, substitution string, target string)

實例:

            $ awk '{ gsub(/test/, "mytest"); print }' testfile
            $ awk '{ gsub(/test/, "mytest"), $1 }; print }' testfile

第一個例子在整個文檔中匹配test,匹配的都被替換成mytest。

第二個例子在整個文檔的第一個域中匹配,所有匹配的都被替換成mytest。

index函數(shù)返回子字符串第一次被匹配的位置,偏移量從位置1開始。格式如下:

          index(string, substring)

實例:

            $ awk '{ print index("test", "mytest") }' testfile

實例返回test在mytest的位置,結(jié)果應(yīng)該是3。

length函數(shù)返回記錄的字符數(shù)。格式如下:

            length( string )
            length

實例:

            $ awk '{ print length( "test" ) }' 
            $ awk '{ print length }' testfile

第一個實例返回test字符串的長度。

第二個實例返回testfile文件中第條記錄的字符數(shù)。

substr函數(shù)返回從位置1開始的子字符串,如果指定長度超過實際長度,就返回整個字符串。格式如下:

            substr( string, starting position )
            substr( string, starting position, length of string )

實例:

            $ awk '{ print substr( "hello world", 7,11 ) }' 

上例截取了world子字符串。

match函數(shù)返回在字符串中正則表達式位置的索引,如果找不到指定的正則表達式則返回0。match函數(shù)會設(shè)置內(nèi)建變量RSTART為字符串中子字符串的開始位置,RLENGTH為到子字符串末尾的字符個數(shù)。substr可利于這些變量來截取字符串。函數(shù)格式如下:

            match( string, regular expression )

實例:

            $ awk '{start=match("this is a test",/[a-z]+$/); print start}'
            $ awk '{start=match("this is a test",/[a-z]+$/); print start, RSTART, RLENGTH }'

第一個實例打印以連續(xù)小寫字符結(jié)尾的開始位置,這里是11。

第二個實例還打印RSTART和RLENGTH變量,這里是11(start),11(RSTART),4(RLENGTH)。

toupper和tolower函數(shù)可用于字符串大小間的轉(zhuǎn)換,該功能只在gawk中有效。格式如下:

            toupper( string )
            tolower( string )

實例:

            $ awk '{ print toupper("test"), tolower("TEST") }'

split函數(shù)可按給定的分隔符把字符串分割為一個數(shù)組。如果分隔符沒提供,則按當(dāng)前FS值進行分割。格式如下:

            split( string, array, field separator )
            split( string, array )

實例:

            $ awk '{ split( "20:18:00", time, ":" ); print time[2] }'

上例把時間按冒號分割到time數(shù)組內(nèi),并顯示第二個數(shù)組元素18。

14.8.2. 時間函數(shù)
systime函數(shù)返回從1970年1月1日開始到當(dāng)前時間(不計閏年)的整秒數(shù)。格式如下:

            systime()

實例:

            $ awk '{ now = systime(); print now }'

strftime函數(shù)使用C庫中的strftime函數(shù)格式化時間。格式如下:

            systime( [format specification][,timestamp] )

Table 3. 日期和時間格式說明符

格式 描述 
%a 星期幾的縮寫(Sun) 
%A 星期幾的完整寫法(Sunday) 
%b 月名的縮寫(Oct) 
%B 月名的完整寫法(October) 
%c 本地日期和時間 
%d 十進制日期 
%D 日期 08/20/99 
%e 日期,如果只有一位會補上一個空格 
%H 用十進制表示24小時格式的小時 
%I 用十進制表示12小時格式的小時 
%j 從1月1日起一年中的第幾天 
%m 十進制表示的月份 
%M 十進制表示的分鐘 
%p 12小時表示法(AM/PM) 
%S 十進制表示的秒 
%U 十進制表示的一年中的第幾個星期(星期天作為一個星期的開始) 
%w 十進制表示的星期幾(星期天是0) 
%W 十進制表示的一年中的第幾個星期(星期一作為一個星期的開始) 
%x 重新設(shè)置本地日期(08/20/99) 
%X 重新設(shè)置本地時間(12:00:00) 
%y 兩位數(shù)字表示的年(99) 
%Y 當(dāng)前月份 
%Z 時區(qū)(PDT) 
%% 百分號(%) 

實例:

            $ awk '{ now=strftime( "%D", systime() ); print now }'
            $ awk '{ now=strftime("%m/%d/%y"); print now }'

14.8.3. 內(nèi)建數(shù)學(xué)函數(shù)
Table 4. 

函數(shù)名稱 返回值 
atan2(x,y) y,x范圍內(nèi)的余切 
cos(x) 余弦函數(shù) 
exp(x) 求冪 
int(x) 取整 
log(x) 自然對數(shù) 
rand() 隨機數(shù) 
sin(x) 正弦 
sqrt(x) 平方根 
srand(x) x是rand()函數(shù)的種子 
int(x) 取整,過程沒有舍入 
rand() 產(chǎn)生一個大于等于0而小于1的隨機數(shù) 

14.8.4. 自定義函數(shù)
在awk中還可自定義函數(shù),格式如下:

        function name ( parameter, parameter, parameter, ... ) {
                        statements
                        return expression                  # the return statement and expression are optional
        }

15. How-to
如何把一行豎排的數(shù)據(jù)轉(zhuǎn)換成橫排?

awk '{printf("%s,",$1)}' filename
完整版本

相關(guān)文章

最新評論

仁寿县| 和硕县| 新河县| 武城县| 大渡口区| 永安市| 定南县| 开江县| 桃源县| 上饶市| 静乐县| 沙雅县| 清徐县| 秦安县| 岳阳市| 长宁区| 香港 | 图们市| 沁源县| 和政县| 五家渠市| 本溪市| 拉萨市| 桐乡市| 宁晋县| 西昌市| 东海县| 沙坪坝区| 湖州市| 天峻县| 双峰县| 怀来县| 乐安县| 遵义县| 五家渠市| 滨州市| 甘德县| 杭锦旗| 日照市| 娄底市| 千阳县|