テキストファイルのすべての行から区切り文字の);
前後のテキストを削除するのに役立ちます。|
つまり:
SUBSCIBER_MSISDN=6289666195060');BEGIN DBMS_LOCK.SLEEP(5); END-- rKSy|
結果は次のようになります
SUBSCIBER_MSISDN=6289666195060|
このセクションを削除する方法をご存知ですか?これは大きなファイルです。
ぜひ使用しなければならないと狂っていると思いますsed
。
ベストアンサー1
一部の入力ファイルの行全体を表示するとします。
sed "s/'.*/|/" file >newfile
'
これにより、各行の最初の文字の後のすべての内容が1文字|
に置き換えられます。結果はリダイレクトを介して新しいファイルに書き込まれます。sed
一重引用符で囲まれた文字列には一重引用符文字を含めることはできないため、式の周囲に二重引用符を使用しています。
サンプルデータが与えられると、これは次のようになります。
SUBSCIBER_MSISDN=6289666195060|
行の先頭でも空白を削除したい場合(あなたの例ではこれを行うようです):
sed -e "s/'.*/|/" -e 's/^[[:blank:]]*//' file >newfile
または、
sed "s/'.*/|/; s/^[[:blank:]]*//" file >newfile
逆重複している場合は、次を使用して同じ変換を実行sed
できます。awk
awk '{ sub("'"'"'.*", "|"); sub("^[[:blank:]]*", ""); print }' file >newfile
ファンキーな形は引用された一重'"'"'
引用符です。awk
コードを構成する一重引用符文字列の外側では、二重引用符で囲む必要があります。私達はまた利用できます'\''
。
awk '{ sub("'\''.*", "|"); sub("^[[:blank:]]*", ""); print }' file >newfile
あるいは、単一引用符文字に8進数のASCIIコードを使用することもできます。
awk '{ sub("\047.*", "|"); sub("^[[:blank:]]*", ""); print }' file >newfile