これまでの回答に基づいて、おそらくあなたが探しているのは、単語をスペース、コンマ、文末文字(英語では「。」「!」または「?」で区切られた文字のシーケンス)などとして扱うことだと思います。英数字との組み合わせでは通常見られない文字(例:「<」および「;」ですが、そうではありません'
-
#
$
%
)。今、 "。" は文末の文字ですが、$27.00
これは「単語」と見なす.
必要があるため、文脈に応じて異なる方法で処理する必要があるとおっしゃいました。「-」や他の文字についても同じことが言えると思います。
したがって、これを変換するソリューションが必要です。
I have $27.00. We're 20% under-budget, right? This is #2 - mail me at "foo@bar.com".
これに:
I
have
$27.00
We're
20%
under-budget
right
This
is
#2
mail
me
at
foo@bar.com
あれは正しいですか?
GNU awkを使用してこれを試して、RSを複数の文字に設定できるようにします。
$ cat file
I have $27.00. We're 20% under-budget, right? This is #2 - mail me at "foo@bar.com".
$ gawk -v RS="[[:space:]?!]+" '{gsub(/^[^[:alnum:]$#]+|[^[:alnum:]%]+$/,"")} $0!=""' file
I
have
$27.00
We're
20%
under-budget
right
This
is
#2
mail
me
at
foo@bar.com
他のいくつかのテストケースを考え出して、これが常に希望どおりに機能するかどうかを確認してください。