エスケープ文字とgsubを使用せずにテキストの前に引用符をインポートする必要があります。

エスケープ文字とgsubを使用せずにテキストの前に引用符をインポートする必要があります。

tst.csv次の内容で名前が付けられたファイルがあります

"FORESS INTL PTN "A" (208)"

次の出力を取得するには、エスケープ文字()\を使用しないでください。次の期待される出力を達成するためにのみ必要です。使用中の外部プログラムはバックスラッシュ文字をデコードしないためです。gsubsub

期待される出力

"FORESS INTL PTN ""A"" (208)"

次のコマンドを試しました

awk '{gsub(/"/,"&&");gsub(/^""|""$/,"")}1' tst.csv

私は次のo / pを得ます

FORESS INTL PTN ""A"" (208)

ただし、テキストの前または行の末尾に二重引用符を使用することはできません。

ベストアンサー1

簡単に:

gsub(/"/, "&&"); gsub(/^"|"$/, "")

"バックスラッシュを使用せずにawk変数に入れるには、いつでも次のことができます。

awk -v q='"' ...

またはawk(ASCIIベースのシステムを想定):

BEGIN {q = sprintf("%c", 34)}

おすすめ記事