我有如下输入
输入文件名:a.txt
-- Some Comment
delete from tb.Test WHERE id = 'abxd1';
delete from tb1.Test WHERE id = 'abxd2';
-- Some Comment
delete from tb1.Table1 WHERE id = 'abxd3';
预期输出文件:b.txt
-- Some Comment
delete from Test WHERE id = 'abxd1';
delete from Test WHERE id = 'abxd2';
-- Some Comment
delete from Table1 WHERE id = 'abxd2';
以下代码将仅替换值“tb.”。我正在尝试将其作为通用脚本。
while read line
do
str=$line
echo "${str/tb./}" >>b.txt
done <$1
谢谢你的帮助
最佳答案
你可以使用 sed
:
sed 's/delete from \(tb[0-9]\?\).\([[:alnum:]]\+\)/delete from \2/g' input.file
关于linux - 如何查找和删除字符串中的多个子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24412469/