【发布时间】:2018-05-14 21:10:25
【问题描述】:
将用 sed 或 awk 替换字符串,其中它标识如下所述的模式:
示例:查找以“XX”开头并以“XX”结尾的单词,并在“XX”和“}”开头用“${hf:”连接替换该单词" 在 "XX" 的末尾 输入
CREATE TABLE XX_DB_XX.test_XX_YYYYMMDD_XX
AS
SELECT id
FROM XX_R_DB_XX.usr_XX_YYYYMMDD_XX
WHERE year = XX_YYYY_XX
AND month = XX_MM_XX
AND day = XX_DD_XX;
输出
CREATE TABLE ${hf:XX_DB_XX}.test_${hf:XX_YYYYMMDD_XX}
AS
SELECT id
FROM ${hf:XX_R_DB_XX}.usr_${hf:XX_YYYYMMDD_XX}
WHERE year = ${hf:XX_YYYY_XX}
AND month = ${hf:XX_MM_XX}
AND day = ${hf:XX_DD_XX};
尝试替换模式匹配,但问题是,在输出中我想将 $A 替换为输入文件中可用的子字符串“XX_(*)_XX”。
cat test.hql | gawk '{ print gensub(/XX_+[A-Z,_]+_XX/, "${hiveconf:$A}", 1)
}' | gawk '{ print gensub(/XX_+[A-Z]+_XX/, "${hiveconf:$A}", 1) }'
输出:-> 我收到的需要更新 w.r.t 可用的字符串,那么如何做到这一点:
CREATE TABLE ${hiveconf:$A}.test_${hiveconf:$A}
AS
SELECT id
FROM ${hiveconf:$A}.usr_${hiveconf:$A}
WHERE year = ${hiveconf:$A}
AND month = ${hiveconf:$A}
AND day = ${hiveconf:$A};
【问题讨论】:
-
这是对您想要为您(免费)编写的代码的描述,而不是问题。请展示您自己尝试过的内容、您的结果以及它与所需输出的不同之处。理想情况下,就让你陷入困境的编程细节提出一个实际问题。
-
@Sampat,很高兴在您的帖子中添加您的努力,因为我们都在这里学习,继续学习并继续分享欢呼:)
-
@RavinderSingh13 抱歉忘记添加我最后完成的试验,已编辑问题并添加了问题
-
@RavinderSingh13 我们如何从上面给定的“OUTPUT”文件到“INPUT”文件进行上述字符串替换的反向操作。