sed 和 awk 的一些用法

1. 截取test 文件指定字段

test文件內容: ert fff ** [abcfd] 123 324 444 [rty] ** fgfgf

截取下面段: [abcfd] 123 324 444 [rty]

2. sed中,使用\u表示大寫,\l表示小寫

  • 把每個單詞的第一個小寫字母變成大寫
  • 把所有小寫變成大寫
  • 大寫變小寫

3. sed在文件中某一行最後添加一個數字

4. sed 刪除某個關鍵字的下一行到最後一行

5. 是使用 sed 打印1到 10 行內包含 某字符串的行

6. 在awk 中使用外部shell 變量

7. awk 合併兩個文件

8. 把一個文件多行連接成一行

9. awk 中 gsub 函數的使用

  • gsub 函數是將正則表達式被匹配到的發生替換.
  • gsub(Regualr expression, subsitution string, target string);

10. awk 截取指定多個域爲一行

for ((i=1,n=`awk -F: 'NR==1 {print NF}' ./passwd`;i<=n;i++)); do awk -F: -v i=$i '{printf($i ":");} END{ print "\n"}' ./passwd  ;done

# 最外層使用 for () do   ;done  循環包裹
# for循環結構是 (i=1,n=`awk -F: 'NR==1 {print NF}' ./passwd`;i<=n;i++)
# 獲取了 文件的列數, 然後根據列數, 設置 i 的值,

# 循環內是獲取 該文件的第 i 列, 然後將該列 輸出爲1行

11. grep 或 egre 或 awk 過濾 兩個或多個關鍵詞

grep 'abc|def' file grep -E 'abc|def' file egrep 'abc|def' file awk '/ab|de/' file

12. 使用 awk 編寫生成以下結構文件程序

用 awk 生成下面結構文件(最後列是使用現在時間 格式爲YYYMMDDHHMMSS) 各列值如下, 每增加以行增加1 , 共500w 行 1,1,0000000001,0000000001,0000000001,0000000001,0000000001,0000000001,2005100110101 2,2,0000000002,0000000002,0000000002,0000000002,0000000002,0000000002,2005100110101

  • 使用 for 循環加 printf 格式化輸出, 然後用 awk 內建函數 strftime生成時間

  • 可以使用 system 函數調用系統命令

13. awk 用print 打印單引號

14. 把兩個文件中相同的行合併成一行

  • paste 命令 用於將多個文件按照隊列進行合併. 選項:
-d <間隔字符>:      用於指定間隔字符取代合併時用的跳格字符
-s              串列進行合併, 而非水平合併

END

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