コマンド名を別名で登録できるaliasコマンドとperlを使用して改行コードを変換するコマンドを登録してみます。
以下にperlを使用してCRLFからLFに改行コードを変換する構文とLFからCRLFに変換する例を記します。
perl -pe 's/\n/\r\n/' 入力ファイル名 > 出力ファイル名
perl -pe 's/\r\n/\n/' 入力ファイル名 > 出力ファイル名
以下のように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に関しては以下の記事を参考にしてください。
上記で別名登録したperl一行スクリプトを.bashrc(.bash_profile)に登録すれば、毎回端末を起動する毎にaliasコマンドを実行する必要はありません。
よく使うようであれば.bashrc(.bash_profile)に登録することをお薦めします。
$ 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/'"