;
複数のテーブルの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/
1行に1つずつ交換maaa'$
maaa'
行末で一致$
/&;/
一致するパターンに置き換えて;
;
空白で始まり'hdfs://
a で終わるすべての行に a を追加するには、'
次の代替方法を使用できます。もう一度押しEscてください。
:%s/^ 'hdfs:\/\/.*'$/&;/
説明する:
:%s/
1行に1つずつ交換^ 'hdfs:\/\/.*'$
行の先頭^
、そのあとに空白文字、その後にhdfs://
(/
aでエスケープする必要がある\
)、ランダムな文字、.*
その後に'
行の終わりと一致します。$
/&;/
一致するパターンに置き換えて;
問題が発生した場合は、いつでもEsc+を使用して操作をキャンセルできます。u