原始信息如下(sqoop-metastore中shared.db.script配置):
INSERT INTO SQOOP_SESSIONS VALUES('job_test','incremental.last.value','2016-04-20 01:27:33.0','SqoopOptions')
需要将指定任务job_test中的时间修改为2015-12-15 00:00:00.0
sed "s/\(^INSERT INTO SQOOP_SESSIONS VALUES('job_test','incremental.last.value','\)[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\} [0-9]\{2\}:[0-9]\{2\}:[0-9]\{2\}\.[0-9]\(','SqoopOptions')\)/\12015-12-15 00:00:00.0\2/" test5
解释说明:
sed和grep正则语法相同,只是别基本的正则表达式
awk和egrep正则语法相同,识别扩展的正则表达式
sed识别的元字符包括\(\)、\{\}、\<\>
\(\)用于保存正则表示部分,然后使用\1、\2进行回调保存部分
实际应用中使用变量替换job_test部分。