sedを使用して特定の句読点を除くすべての句読点を完全に削除するには?

sedを使用して特定の句読点を除くすべての句読点を完全に削除するには?

sedを使用してファイルからすべての句読点(特定の文字を除く)を削除するには?特に、次の文字を保持したいと思います。

@-_$%

現在、すべての句読点を削除するためにこれを使用していますが、次の文字を保持するために修正する方法がわかりません。

cat input.txt | sed -e "s/[[:punct:]]\+//g" > output.txt

または、特定の句読点のみを削除するにはどうすればよいですか?良い:

.!?,'/\"()[]^*

ベストアンサー1

sed方法:

サンプルファイルの内容:

.!?,'/\"()[]^* @-$%
.!?,'/\"()[]^* @ sdfsd %
as,,d//asd a?sd %%   --@_ _asdasdad$
sdfsdf %''%!% 2 + 2 = (?)

sed '/[[:punct:]]*/{ s/[^[:alnum:][:space:]@_$%-]//g}' file

出力:

 @-$%
 @ sdfsd %
asdasd asd %%   --@_ _asdasdad$
sdfsdf %%% 2  2  

おすすめ記事