Linux文本三劍客:grep,awk和sed

Linux文本處理工具grep和sed

awk中的built-in變量
FILENAME前加和不加有何區別?

利用sed實現grep的功能
sed中使用;表示語句終端
sed如何查看後兩行
sed區間匹配
sed貪婪匹配
awk是否支持二維數組顯示和制定字段分隔符

hexo是一個快速簡潔且高效的博客框架,但依賴於git和node.js

單個print語句本身輸出當前行

空格是字符串連接操作符
FS RS默認空格
OFS ORS默認換行符
記錄變量 NF,NR,FNR
字段分隔符,記錄分隔符

AWK 操作符可以嵌套使用,但這樣做將導致程序不易閱讀。爲了清晰建議將條件用圓括號括起來。

在awk中,不必指明數組的大小,只需爲數組指定標識符。

在awk中,所有的數組都是關聯數組,什麼是關聯數組?
關聯數組的獨特之處在於它的下標可以是一個字符串或者數組。

awk中函數定義可以放置在腳本中模式操作規則可以出現的任何地方。通常情況下,我們將函數定義放在腳本頂部的模式操作規則之外。

通常情況下,因爲希望在讀入第一個輸入行之前設置子段和分隔符的值,因此一般在BEGIN過程中定義他們,當然,也可以在腳本中的任何位置重定義他們的值。

在print語句中,直接修改FS的值,則前後連接的多個field中可存在多餘空格,但不會對輸出產生影響。即print語句中的多餘空格是不起任何作用的。因爲awk中的空格是作爲字符串的連接符。

字符串常量是用雙引號括起來的字符序列。

awk中的pattern和action的正常表達式使用斜槓包圍。
awk對大括號和語句的位置沒有特殊的要求(這與sed不同),且在大括號的前後不允許有空格和製表符。

if後面的語句,若爲一句,則不必使用花括號,若爲兩級以上,則需要花括號括起來。

awk使用和grep相同的元字符(即擴展的元字符集)
無字符的功能,元字符組合的功能
字符串連接是每個正則表達式的基本操作。
元字符“.”可以作爲通配符匹配任何單個字符。
元字符*本身並不匹配任何字符,它用於修改前面的內容,即用於與它前面的正則表達式的零個或多個出現。
注意必須使用引號引出其中的基本模式,以便把它傳給grep,而不只是由shell解釋
awk中的if要寫成{action}中。

python中id()返回值是內存地址嗎?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章