原创 Linux文本處理三劍客之awk學習筆記05:getline用法詳解

getline用法詳解 在默認情況下,awk支持從文件或者STDIN中讀取數據。我們也可以使用getline來靈活讀取數據,例如在main代碼塊執行過程中讀取某個非待處理文件的數據,或者從某個讀取某個shell命令結果數據。 getline

原创 Linux文本處理三劍客之awk學習筆記04:工作流程

工作流程 可以參考man手冊。 man --pager='less -p ^"AWK PROGRAM EXECUTION"' awk 示例 awk -v a=1 -v b=2 'BEGIN{...}{...main...}END{..

原创 Linux文本處理三劍客之awk學習筆記02:命令行和語法結構

命令行和語法結構 awk [ options ] [ -- ] program-text file ... options即選項;program-text即awk代碼;file ...即待處理的讀入數據,可以是文件也可以是標準輸入,只要

原创 Linux文本處理三劍客之awk學習筆記01:前言

本博文參考的資料來自於駿馬金龍的awk教程,該教程在51CTO上也有對應的課程,歡迎大家付費支持。本博文默認讀者已經具備了正則表達式基礎。 前言 本博客中使用的示例文件a.txt內容如下。 ID name gender ag

原创 Linux文本處理三劍客之awk學習筆記06:輸出操作

輸出操作 awk可以通過print或者printf將數據輸出到標準輸出或者重定向到文件中。 print print我們已經使用過很多次了。其實它本質是一個輸出函數,即有小括號。 print (elem1,elem2,elem3...) p

原创 Linux文本處理三劍客之awk學習筆記03:讀取文件

讀取文件 讀取“每行”數據 博客的開頭我們說過,默認情況下awk讀取文件的每行數據並將其存入$0變量當中。其實,awk在讀取數據之前會根據其內部的預定義變量RS的值來分隔每條記錄(record)。RS的默認值是“\n”,即換行符,因此也就會

原创 Bash腳本編程學習筆記09:信號捕捉

簡介 首先我們先來看一段代碼。 #!/bin/bash declare -i uphosts=0 declare -i downhosts=0 for i in 192.168.152.{98..102}; do if pin

原创 Bash腳本編程學習筆記05:用戶交互與腳本調試

用戶交互 在《學習筆記04》中我們有提到位置參數,位置參數是用來向腳本傳遞參數的一種方式。還有一種方式,是read命令。 [root@c7-server ~]# read name alongdidi [root@c7-server ~]

原创 Bash腳本編程學習筆記07:循環結構體

本篇中涉及到算術運算,使用了$[]這種我未在官方手冊中見到的用法,但是確實可用的,在此前的博文《Bash腳本編程學習筆記03:算術運算》中我有說明不要使用,不過自己忘記了。大家還是儘量使用其他的方法進行算術運算。 簡介 Bash具有三種

原创 Bash腳本編程學習筆記04:測試命令test、狀態返回值、位置參數和特殊變量

我自己接觸Linux主要是大學學習的Turbolinux --> 根據《鳥哥的Linux私房菜:基礎篇》(第三版) --> 馬哥的就業班課程。給我的感覺是這些課程對於bash的講解,理論上是不夠的,但是限於時間、篇幅和精力,確實無法講解的

原创 Bash腳本編程學習筆記08:函數

  官方資料:Shell Functions (Bash Reference Manual) 簡介 正如我們在《Bash腳本編程學習筆記06:條件結構體》中最後所說的,我們應該把一些可能反覆執行的代碼塊整合起來,避免反覆編寫使得代碼過於

原创 Bash腳本編程學習筆記06:條件結構體

簡介 在bash腳本編程中,條件結構體使用if語句和case語句兩種句式。 if語句 單分支if語句 if TEST; then CMD fi TEST:條件判斷,多數情況下可使用test命令來實現,返回值爲0的話則執行CMD,

原创 命令:less

與more的區別 more在man手冊中的英文原文是文件熟讀過濾器(file perusal filter),其實可以理解爲一種文本查看器。 它存在一些缺點: 必須事先加載完整個文件。因此在遇到大文件的時候,需要等待。 翻閱到文件尾部的時