[英]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.