nkf
やsed
を使ってコマンドラインから全角⇔半角の変換をする方法についてのまとめ。
全角⇒半角の変換
nkfを使う場合
全角から半角へはnkf
の-Z
オプションで変換できます。
全角英数字を半角英数字に変換
$ echo 'あいうえお 123456 abcdef' | nkf -Z
あいうえお 123456 abcdef
全角英数字と全角スペースを半角に変換
$ echo 'あいうえお 123456 abcdef' | nkf -Z1
あいうえお 123456 abcdef
全角英数字と全角スペースを半角に変換(全角スペースは半角スペース2つに変換)
$ echo 'あいうえお 123456 abcdef' | nkf -Z2 あいうえお 123456 abcdef
sedを使う場合
$ echo 'あいうえお 123456 abcdef' | sed 'y/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 /abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 /' あいうえお 123456 abcdef
半角⇒全角の変換
sedを使う場合
$ echo 'あいうえお 123456 abcdef' | sed 'y/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 /abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 /' あいうえお 123456 abcdef
数字だけ全角に変換したい場合
$ echo 'あいうえお 123456 abcdef' | sed 'y/1234567890/1234567890/'
あいうえお 123456 abcdef
※コマンドはすべて1行です。改行しないように注意してください。
関連記事
Pythonでnkf
Pythonで文字コードが不明な文字列(例えばインターネット上のHTMLは文字コードが間違っている場合があります)はnkfを使うと簡単に取り扱うことができるみたいです。
# emerge -pv app-i18n/nkf
These are the packages that would be merged, in order:
Calculating dependencies... ...
sedの基本的な使い方
sedはstream editorの略で入力テキストをフィルタリング・テキスト変換するツールです。いろいろ複雑なこともできますが、ここではsedを使った簡単な文字列置換を紹介してみようと思います。
基本的な使い方
基本的な使い方は次のような感じです。
$ echo "input" | sed "s/pattern/replacement/"
"input"で入力した文字列...