[英]How to replace the words with certain pattern in a file with sed?
我知道如何用sed代替單詞。 運用
sed -i 's/[old_text]\b/[new_text]/g'
可以用new_text替換old_text。
我想做的是在數據庫架構中用char(10)替換nchar(10)或nchar(10)或nchar(10)...。
CREATE TABLE Human
(
ID int,
Name nchar(10) --> should be replace with char(10)
);
格式很難確定。
我不知道如何設置sed正則表達式來對此進行存檔。
您可以在任何地方使空格為可選:
sed -i.bak 's/\<nchar *( *\([0-9]*\) *)/char(\1)/g' file.sql
\\<
用於單詞邊界。 或者,您可以在vi中打開文件並在vi cmd模式下使用以下命令
%s/nchar/char/g
一次替換整個文件
一次性替換所有出現的nchar。
並在更換所有之前進行檢查
%s/nchar/char/gc
y是
n表示不更換
用於替換所有休息
使用sed
和擴展的regex -r
(為清楚起見)。 另外-i
表示“就地”,因此無需創建其他輸出文件
sed -i sqlfile -r -e "s/nchar\s*\(\s*([0-9]+)\s*\)/char(\1)/g"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.