sedコマンドを使用してすべての句読点を削除するには?

sedコマンドを使用してすべての句読点を削除するには?

このコマンドを使用してテキストファイルからすべての句読点を削除しようとしていますが、sed方法がわかりません。

答え1

「句読点」がセットの文字を表す場合

!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

[:punct:](これは正規表現で書かれた「POSIX句読点」のセットです。)「削除」が「完全に削除」を意味する場合、次の方が効率的ですtr

tr -d '[:punct:]' <file.in >file.out

これはtr入力ストリームから上記のセットのすべての文字を削除し、名前付きファイルから読み込み、file.in結果をいくつかのファイルに書き込むように指示しますfile.out

の場合sed、あなたも同じことをします

sed 's/[[:punct:]]//g' <file.in >file.out

...しかし、この速度は少し遅くなると予想されます(一括入力データでのみ目立つように見えます)。

関連情報