我的字串是:
www.abc.texas.com
mail.texas.com
subdomain.xyz.cc.texas.com
www2.texas.com
我試圖在 texas.com 之前只用“一個”字來獲得結果。當我執行正則運算式 grep 時的期望:
mail.texas.com
www2.texas.com
所以 mail & www2 是我所說的“一個”詞。我試過 :
grep "*.texas.com",但我在結果中得到了所有這些。有人可以幫忙嗎?
uj5u.com熱心網友回復:
您可以使用
grep '^[^.]*\.texas\.com'
詳情:
^- 字串的開始[^.]*- 零個或多個字符以外的.字符\.texas\.com-.texas.com字串(文字.字符必須在正則運算式模式中轉義)。
查看在線演示:
#!/bin/bash
s='www.abc.texas.com
mail.texas.com
subdomain.xyz.cc.texas.com
www2.texas.com'
grep '^[^.]*\.texas\.com' <<< "$s"
輸出:
mail.texas.com
www2.texas.com
uj5u.com熱心網友回復:
與awk:
awk 'BEGIN{FS=OFS="."} /texas.com$/ && NF==3' file
輸出:
mail.texas.com www2.texas.com
設定一個點作為輸入和輸出欄位分隔符,檢查行texas.com尾 ( $) 并檢查三個欄位。
請參閱:8 個強大的 Awk 內置變數——FS、OFS、RS、ORS、NR、NF、FILENAME、FNR
uj5u.com熱心網友回復:
使用您顯示的示例,請嘗試以下awk代碼。
awk -F'.' 'NF==3 && $2=="texas" && $3=="com"' Input_file
說明:.簡單地為程式中的所有行制作欄位分隔符awk。然后在主程式檢查條件中,如果 NF==3(表示當前行中的欄位數)為 3,并且第 2 欄位為texas且第 3 欄位為com是否滿足所有 3 個條件,則列印該行。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/413732.html
標籤:
