このコマンドを使用してテキストファイルからすべての句読点を削除しようとしていますが、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
...しかし、この速度は少し遅くなると予想されます(一括入力データでのみ目立つように見えます)。