#navi(../)
* aliasコマンドを使用して改行コード変換コマンドを登録する・perl使用 [#x61909e2]
コマンド名を別名で登録できるaliasコマンドとperlを使用して改行コードを変換するコマンドを登録してみます。
#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
* 関連記事 [#je30c772]
-[[改行コードを変更したい>逆引きUNIXコマンド/改行コードを変更したい]]
-[[改行コードの確認方法>逆引きUNIXコマンド/改行コードの確認方法]]
-[[文字コードを調べる・kccコマンド>逆引きUNIXコマンド/文字コードを調べる]]
-[[日本語文字コードを調べる・nkfコマンド>逆引きUNIXコマンド/日本語文字コードを調べる・nkf]]
-[[日本語文字コードの変換を行う・nkfコマンド>逆引きUNIXコマンド/日本語文字コードの変換を行う・nkf]]
-[[aliasで設定したコマンドを一時的に無効にして実行する方法>Linux環境設定/aliasで設定したコマンドを一時的に無効にして実行する方法]]
* perlによる改行コードの変換 [#sa9fa220]
以下にperlを使用してCRLFからLFに改行コードを変換する構文とLFからCRLFに変換する例を記します。
- 改行コードをLFからCRLFに変換
perl -pe 's/\n/\r\n/' 入力ファイル名 > 出力ファイル名
- 改行コードをCRLFからLFに変換
perl -pe 's/\r\n/\n/' 入力ファイル名 > 出力ファイル名
* aliasを使用して改行コードコマンドを登録する [#ke92d0d4]
以下のようにaliasコマンドを使用することによりperl1行スクリプトをlfcrlf, crlf2lfというコマンド名で登録することができます。
alias lf2crlf="perl -pe 's/\n/\r\n/'"
alias crlf2lf="perl -pe 's/\r\n/\n/'"
上記の2行を端末で実行することにより、lf2crlf, crlf2lfがコマンドとして登録されます。~
実際に使用したときの出力結果です。
aliasコマンドでperl1行スクリプトを別名登録しています。
$ alias lf2crlf="perl -pe 's/\n/\r\n/'"
$ alias crlf2lf="perl -pe 's/\r\n/\n/'"
最初に使用するhello.lfをcat -vオプションで出力しています。(改行コードがLFであることを確認)
$ cat -v hello.lf
hello
world
lf2crlfコマンドで改行コードLFをCRLFに変換しています。
$ lf2crlf hello.lf > hello.crlf
変換したファイルをcat -vオプションで表示すると^Mが表示されたので、CRLFに変換されたのが確認できます。
$ cat -v hello.crlf
hello^M
world^M
上記でCRLFに変換したファイルを使用し、再度LFに戻しています。
$ crlf2lf hello.crlf > hello.lf2
$ cat -v hello.lf2
hello
world
cat -vに関しては以下の記事を参考にしてください。
-[[改行コードの確認方法>逆引きUNIXコマンド/改行コードの確認方法]]
* .bashrcに登録する [#x2e13652]
上記で別名登録したperl一行スクリプトを.bashrc(.bash_profile)に登録すれば、毎回端末を起動する毎にaliasコマンドを実行する必要はありません。~
よく使うようであれば.bashrc(.bash_profile)に登録することをお薦めします。~
- .bashrcの抜粋
$ cat .bashrc
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific aliases and functions
<snip>
alias lf2crlf="perl -pe 's/\n/\r\n/'"
alias crlf2lf="perl -pe 's/\r\n/\n/'"
#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)