如果行包含单词 VARCHAR(1000),我需要在行的开头插入“--”
我的文件示例是:
TRIM(CAST("AP_RQ_MSG_TYPE_ID" AS NVARCHAR(1000))) AP_RQ_MSG_TYPE_ID, TRIM(CAST("AP_RQ_PROCESSING_CD" AS NVARCHAR(1000))) AP_RQ_PROCESSING_CD, TRIM(CAST("AP_RQ_ACQ_INST_ID" AS NVARCHAR(11))) AP_RQ_ACQ_ INST_ID,修剪( CAST("AP_RQ_LOCAL_TXN_TIME" AS NVARCHAR(10))) AP_RQ_LOCAL_TXN_TIME, TRIM(CAST("AP_RQ_LOCAL_TXN_DATE" AS NVARCHAR(10))) AP_RQ_LOCAL_TXN_DATE, TRIM(CAST("AP_RQ_RETAILER" AS NVARCHAR(11))) AP_RQ_RETAILER,
我用了这个命令
sed 's/\(^.*VARCHAR\(1000\).*$\)/--\1/I' *.sql
Run Code Online (Sandbox Code Playgroud)
但结果并不如预期。有谁知道我做错了什么?
这应该做:
sed 's/.*VARCHAR(1000).*/--&/' file
Run Code Online (Sandbox Code Playgroud)
sed 命令中的问题出在正则表达式部分。默认情况下 sed 使用 BRE,这意味着( and )(包裹1000) 只是文字括号,您不应该转义它们,或者您给了它们特殊的含义:正则表达式分组。
(..)你逃脱的第一个也是最后一个,你做对了,如果你想稍后通过 引用它\1。所以你的问题是逃还是不逃。:)
| 归档时间: |
|
| 查看次数: |
13320 次 |
| 最近记录: |