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