<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                awk是什么?awk是一個**報表生成器**,擁有強大的文本格式化的能力。我們可以利用awk來處理文本,整理成各種“表”的樣子。 awk 是由 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 三個創造者的姓氏的首個字母組成,早期應用于Unix上,所以我們現在使用的Linux版的awk其實是gawk,也就是GNU awk。 awk其實是一門腳本語言,它支持條件判斷、數組、循環等功能 事實上,grep 、sed、awk 被稱為 linux 中的 "三劍客"。 * grep 適合單純的查找或匹配文本 * sed 適合編輯匹配到的文本 * awk 適合格式化文本,對文本進行較復雜格式處理 ## awk基礎 awk的基本語法如下, ~~~ awk [options] 'program' file1 , file2 , …… ~~~ 其中program也可以細分為pattern和action,也就是說 ~~~ awk [options] 'Pattern{Action}' file ~~~ action 指的就是動作,awk 擅長文本格式化,并且將格式化以后的文本輸出,所以 awk 最常用的動作就是 print 和 printf 比如testd文件中含有"ddd"三個字符 那么使用`awk '{print}' testd`,就會返回`ddd` 下面我們可以看另一個場景: ![](https://raw.githubusercontent.com/dy2903/gallery/master/20181115093024.png) 其中`awk '{print $5}'`表示輸出df信息的第5列,$5表示將當前行按照**分隔符**分隔后的第5列,默認指定空格為分隔符。 另外awk自動將**連續的**空格理解為一個分隔符。 awk是逐行處理的,也就是當awk處理一個文本的時候,會一行一行的處理,默認以“換行符”為標記。 ![](https://raw.githubusercontent.com/dy2903/gallery/master/20181115093231.png) > $0表示顯示整行,$NF表示當前行分割后的最后一列,NF表示當前行被分割開以后,一共有幾個字段。也就是說,如果一行文本給空格分成了7段,那么NF的值就是7,$NF的值就是$7,而$7表示當前行的第7個字段,也就是最后一列,那么倒數第二列就是$(NF-1) 我們也可以一次輸出多列,使用**逗號**進行隔開 ~~~ awk '{print $1,$2}' test ~~~ 如果某一行沒有第2列,則第2列不會有輸出。 除了輸出文本的列,我們還可以添加的字段,與文件中的列結合起來。 ![](https://raw.githubusercontent.com/dy2903/gallery/master/20181115093453.png) ## Pattern 之前介紹了最常用的Action,也就是print。 下面我們來介紹一下Pattern,也就是模式。 AWK 包含兩種特殊的模式:BEGIN 和 END。 * BEGIN 模式:指定了處理文本之**前**需要執行的操作: * END 模式:指定了處理完所有行之**后**所需要執行的操作: ![](http://p8a6vmhkm.bkt.clouddn.com/picgo20180919140934.png?picgo) 也就是表示在處理test文件之前,先執行打印動作。既然還沒開始處理test中的文本,也可以不指定test文件 如果我們想awk先執行BEGIN指定的動作,然后再根據我們自定義的動作去操作文本, ![](http://p8a6vmhkm.bkt.clouddn.com/picgo20180919141114.png?picgo) 上圖中先打印出了 "aaa bbb",當 BEGIN 模式對應的動作完成后,在使用后面的動作處理對應的文本,即打印 test 文件中的第一列與第二列
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看