如何替换特定字符串的字符之前和之后
问题描述:
我正在使用一些Linux文件级操作将SQL服务器插入转换为MySQL插入。 能有人请让我知道如何将低于所有出现转换成一线如何替换特定字符串的字符之前和之后
(..,CAST(0x0000722300000000 AS DateTime),..,CAST(0x0000979900C10112 AS DateTime),...)
如下图所示
(..,myfunc(0x0000722300000000),..,myfunc(0x0000979900C10112),...)
例:
需要转换CAST(hexval AS DATETIME)作为myfunc(hexval),其中hexval是动态的。
$echo "(..,CAST(0x0000722300000000 AS DateTime),..,CAST(0x0000979900C10112 AS DateTime),...)" | using grep or sed or awk
(..,myfunc(0x0000722300000000),..,myfunc(0x0000979900C10112),...)
答
这个sed的一行代码将有助于:
sed 's/CAST(\([^)]\+\) AS DateTime)/myfunc(\1)/g' file
测试:
kent$ cat f
(..,CAST(0x0000722300000000 AS DateTime),..,CAST(0x0000979900C10112 AS DateTime),...)
kent$ sed 's/CAST(\([^)]\+\) AS DateTime)/myfunc(\1)/g' f
(..,myfunc(0x0000722300000000),..,myfunc(0x0000979900C10112),...)
@vidhyadar能否请您eloberate你的问题更容易理解的方式? – mohan111