日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux中gsub函数,Linux中awk下 gsub函数用法

發布時間:2023/12/19 linux 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux中gsub函数,Linux中awk下 gsub函数用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一。遇到的問題:

問題:echo "a b c 2011-11-22 a:d" | awk ‘$4=gsub(/-/,"",$4)‘為啥 輸出后 2011-11-22 變成 2 了?

解答:

gsub(/-/,"",$4)的值是2【在賦值的情況下是這樣的~】,你將2賦值給$4 ,gsub返回的是替換的次數。

如下是測試結果:

[[email?protected] ~]# echo "a b c 2011-11-22 a:d" | awk ‘$4=gsub(/-/,"",$4)‘

a b c 2 a:d

看另一種情況,只是替換的話~

[[email?protected] config]# echo "a b c 2011-11-22 a:d" | awk ‘gsub(/-/,"",$4)‘

a b c 20111122 a:d

[[email?protected] config]# echo "a b c 2011-11-22 a:d" | awk ‘gsub(/-/,"_",$4)‘

a b c 2011_11_22 a:d

二。實例詳解

下面我們來總結一下這個gsub的用法:

有一個文本文件data.test的內容如下:

0001|20081223efskjfdj|EREADFASDLKJCV

0002|20081208djfksdaa|JDKFJALSDJFsddf

0003|20081208efskjfdj|EREADFASDLKJCV

0004|20081211djfksdaa1234|JDKFJALSDJFsddf

以‘|‘為分隔, 現要將第二個域字母前的數字去掉,其他地方都不變, 輸出為:

0001|efskjfdj|EREADFASDLKJCV

0002|djfksdaa|JDKFJALSDJFsddf

0003|efskjfdj|EREADFASDLKJCV

0004|djfksdaa1234|JDKFJALSDJFsddf

解法:

awk -F ‘|‘ ?‘{sub(/[0-9]+/,"",$2);print $0}‘ data.test

三。sub和gsub的區別

sub匹配第一次出現的符合模式的字符串,相當于 sed ‘s//‘

gsub匹配所有的符合模式的字符串,相當于 sed ‘s//g‘

awk的sub函數用法:

sub函數匹配指定域/記錄中最大、最靠左邊的子字符串的正則表達式,并用替換字符串替換這些字符串。如果沒有指定目標字符串就默認使用整個記錄,替換只發生在第一次匹配的時候。

實例:

$ awk ‘{ sub(/test/, "mytest"); print }‘ testfile

$ awk ‘{ sub(/test/, "mytest", $1); print }‘ testfile

第一個例子在整個記錄中匹配,替換只發生在第一次匹配發生的時候。

第二個例子在整個記錄的第一個域中進行匹配,替換只發生在第一次匹配發生的時候

gsub函數作用如sub,但它在整個文檔中進行匹配。

實例:

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

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

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

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

只有當記錄中的域有改變的時候 ,指定0FS變量才有用, 如果記錄中的域無變化, 指定OFS產生不了實際效果。

awk -F‘|‘ -v OFS=‘|‘ ‘{ gsub(/[0-9]/, "", $3); print $0; }‘ data.txt

將把第三個域中所有數字都去掉。

原文:https://www.cnblogs.com/Linux-guowen/p/12659776.html

總結

以上是生活随笔為你收集整理的Linux中gsub函数,Linux中awk下 gsub函数用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。