Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何替换特定字符串的前后字符_Mysql_Sql Server_Linux_Shell - Fatal编程技术网

Mysql 如何替换特定字符串的前后字符

Mysql 如何替换特定字符串的前后字符,mysql,sql-server,linux,shell,Mysql,Sql Server,Linux,Shell,我正在使用一些Linux文件级操作将SQL server插入转换为MySQL插入。 有人能告诉我如何将下面出现的所有内容转换成一行吗 (..,CAST(0x0000722300000000 AS DateTime),..,CAST(0x0000979900C10112 AS DateTime),...) 如下图所示 (..,myfunc(0x0000722300000000),..,myfunc(0x0000979900C10112),...) 例如: 需要将强制转换(hexval作为Dat

我正在使用一些Linux文件级操作将SQL server插入转换为MySQL插入。 有人能告诉我如何将下面出现的所有内容转换成一行吗

(..,CAST(0x0000722300000000 AS DateTime),..,CAST(0x0000979900C10112 AS DateTime),...)
如下图所示

(..,myfunc(0x0000722300000000),..,myfunc(0x0000979900C10112),...)
例如:

需要将强制转换(hexval作为DateTime)转换为myfunc(hexval),其中hexval是动态的

$echo "(..,CAST(0x0000722300000000 AS DateTime),..,CAST(0x0000979900C10112 AS DateTime),...)" | using grep or sed or awk 

(..,myfunc(0x0000722300000000),..,myfunc(0x0000979900C10112),...)

这一行将有助于:

sed 's/CAST(\([^)]\+\) AS DateTime)/myfunc(\1)/g' file
测试:


@vidhyadar能否请您以更容易理解的方式详细阐述您的问题???@vidyadhar
s/…foo…/bar/g
将所有
…foo…
替换为
bar
。剩下的是正则表达式。哪个部分你不懂?@kent我不懂([^)]\+)和\1,它们在命令中使用。你能解释一下它们是什么吗doing@vidyadhar
[^)]\+
是一个或多个非-
字符
\1
引用regex组,它是第一对
(…)
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),...)