linux - 如何查找和删除字符串中的多个子字符串

标签 linux string bash shell

我有如下输入

输入文件名: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/

相关文章:

linux - 排序列表...完成!段错误(核心已转储)

linux - 我已按照 Linux From Scratch 中的说明配置 binutils 2.26,但出现错误 -'c compiler cannot create executable file '

Java while 循环测验不会重置

HTML 中的 Javascript : How to insert a user input into the middle of a string automatically?

bash - 分配给位置参数

linux - 使用shell脚本从字符串中提取信息

linux - PyRoute2::Psutil 等效?

linux - 在 Linux 上创建自定义 SNMP OID

Java - Swing 将颜色设置为 JTextArea 中的文本

bash - Ansible命令执行错误