我有一個包含以下內容的檔案:
Blekota blaboli o koblihach.
Blanka je bl...
GEwI
er
我需要更換每一個字開始,Bl或者bl有xxxx,并將其保存到新的檔案。我試過這個,但沒有用。
while read line;
do pokus="${line//[Bl|bl].* /xxxx}"
echo $pokus
done < "$TEXT" > "$TEXT".new
期望的輸出是:
xxxx xxxx o koblihach.
xxxx je xxxx...
GEwI
er
請問我做錯了什么?
uj5u.com熱心網友回復:
這可以使用以下sed命令完成:
sed 's/\<[Bb]l[[:alpha:]]*/xxxx/g' file
xxxx xxxx o koblihach.
xxxx je xxxx...
GEwI
er
此處\<[Bb]l[[:alpha:]]*匹配以 0 個或多個字母開頭Bl或bl后跟的單詞。
uj5u.com熱心網友回復:
第一種解決方案:使用gsubof 函式awk替換從BlOR開始的所有欄位,bl然后將其分配給xxxx.
awk '{gsub(/(^[Bb]l|\<[Bb]l)[^[:space:]] /,"xxxx")} 1' Input_file
第二個解決方案:用awk你可以嘗試以下。簡單的解釋是遍歷每行的每個欄位,然后檢查條件是否以BlOR開頭,bl然后將其分配給xxxx,然后列印已編輯/未編輯的行。
awk '{for(i=1;i<=NF;i ){if($i~/^[Bb]l/){$i="xxxx"}}} 1' Input_file
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/385034.html
