我想;
在包含多个表的 ddl 的 txt 文件中添加行尾。
例如 :
LOCATION:
'hdfs://HDP**/apps/hive/warehouse/bps_uat.db/maaa'
如上所述,我需要;
在所有此类行的末尾添加。
答案1
除了Freddy的回答之外,你还可以使用命令:global
。例如:
:g/maaa/norm A;
意思是:
:g/ " On each line matching this regex:
maaa " 'maaa'
norm A; " Run 'A;' as if I had manually typed
您必须根据需要调整“maaa”,因为从您的问题中不清楚您想要将其应用到哪一行。:g/hdfs/norm A;
例如,将在包含文本“hdfs”的任何行附加分号。
答案2
要将 a 添加;
到所有以 结尾的行maaa'
,您可以使用以下替换。按Esc,然后输入
:%s/maaa'$/&;/
解释:
:%s/
每行替换一个maaa'$
匹配maaa'
在行尾$
/&;/
替换为匹配的模式并;
要将 a 添加
;
到以空格开头并'hdfs://
以 a 结尾的所有行'
,您可以使用以下替换。再次按Esc,然后输入
:%s/^ 'hdfs:\/\/.*'$/&;/
解释:
:%s/
每行替换一个^ 'hdfs:\/\/.*'$
匹配行首^
,后跟空格字符,后跟hdfs://
(/
需要用a转义\
),后跟任意字符.*
,后跟'
和行尾$
/&;/
替换为匹配的模式并;
如果出现问题,您始终可以使用Esc+撤消操作。u