所以我仍然是使用Bash /脚本的菜鸟。我正在一个项目中,该项目将自动执行抓取帐户密钥并将其放置在SQL查询行的特定括号内的过程,该行将存储在单独的文本文件中。我已经确定了到目前为止所需的内容,但是不确定如何替换特定括号的值。
以下是示例查询:
SELECT NOW(),COUNT (*) FROM ACCT_HIST WHERE ACCT_KEY IN (1010000) AND REC_ACTV_IND = 'Y' AND DT_KEY < 20191009;
因此,我只想替换“ ACCT_KEY IN”之后的括号值。我该怎么办?
我得到了使用类似以下内容替换括号中的值的要点:
"sed "s/([^)]*)/()/g" filename
但是我不确定如何避免在所有括号中替换数据。任何帮助表示赞赏。
用([^)]*)
替换第三次出现的()
:
sed "s/([^)]*)/()/3"
例如:
$ sed "s/([^)]*)/()/3" <<< "(1) (2) (3) (4);"
(1) (2) () (4);
替换最后一次出现:
$ sed "s/\(.*\)([^)]*)/\1()/" <<< "(1) (2) (3) (4) etc;"
(1) (2) (3) () etc;