背景
- 文字数をカウントしてくれるwebサービスを使うことがあった.
- でもいちいちブラウザに切り替えてコピペして文字数みてまた書き直して…という作業がめんどくさい.
- MS Word とかいう邪悪なソフト使いたくない.
- 文章の一部をいちいち別のファイルにコピペして
wc
コマンド叩くのもめんどくさい. - Neovim で文章を書くことが多いからターミナルだけで作業を完結させたい.
- 具体的にはこれと同じ機能をターミナルだけでやりたい
方法
pbpaste | wc -m
解説
-
pbpaste
: クリップボードのデータを標準出力する.テキストならテキストが出力される. Finder でファイルをコピーしたならファイル名が出力される. -
wc -m
: 文字数を数えてくれる.-m
オプションでマルチバイト文字にも対応してくれる. - パイプを使って
pbpaste
の出力をwc -m
の入力として受け取り,最終的にwc -m
の結果を出力する.
応用例
行数も含めた文字数を数えたい
-l
オプションを追加します.
pbpaste | wc -ml
2個の数値が出力されるようになり,1個目が行数,2個目が文字数に対応します.
改行を削除した文字数を数えたい
tr
コマンドで改行文字を削除します.
pbpaste | tr -d '\n' | wc -m
改行と空白を削除した文字数を数えたい
tr
コマンドで空白と改行文字を削除します.
pbpaste | tr -d '\n' | tr -d ' ' | wc -m
他の文字コードにエンコードして文字数を数えたい
適当なオプションを付けて nkf
コマンドを間に挟みます.
ISO-2022-JP
pbpaste | nkf -j | wc -m
Shift_JIS
pbpaste | nkf -s | wc -m
EUC-JP
pbpaste | nkf -e | wc -m
UTF-16
pbpaste | nkf -w16 | wc -m