我输入如下
输入文件名:a.txt
- 一些评论
从tb.Test删除WHERE id =' abxd1&#39 ;;
从tb1.Test删除WHERE id =' abxd2';
- 一些评论
从tb1.Table1删除WHERE id =' abxd3';
预期输出文件:b.txt
- 一些评论
从测试中删除WHERE id =' abxd1&#39 ;;
从测试中删除WHERE id =' abxd2';
- 一些评论
从Table1中删除WHERE id =' abxd2';
以下代码将替换值" tb。"。我试图将其作为通用脚本。
while read line
do
str=$line
echo "${str/tb./}" >>b.txt
done <$1
谢谢你的帮助
答案 0 :(得分:1)
您可以使用sed
:
sed 's/delete from \(tb[0-9]\?\).\([[:alnum:]]\+\)/delete from \2/g' input.file
答案 1 :(得分:0)
您可以使用sed
执行此操作:
echo $str | sed -r 's/tb[a-z0-9_]*.//g'
HTH
答案 2 :(得分:0)
假设您要删除X.
中的delete from X.Y
(DOT和DOT之前的所有内容),它甚至更简单:
sed 's/delete from .*\./delete from /' a.txt
您可以使用-i
选项覆盖同一个文件
sed -i 's/delete from .*\./delete from /' a.txt
HTH,Marcello