投げ銭

★当サイトへの投げ銭(PayPal)★

LINK


(無償、寄付歓迎) logo
世界中で使われるISO標準オフィスソフト(MSオフィス互換)

★LibreOfficeの導入事例★
詳細について

人気の投稿(1ヶ月間)

Ad

Ad

投げ銭

★当サイトへの投げ銭(PayPal)★

2016年9月9日金曜日

【Linux CentOS 6】エスケープシーケンスの入力例

途中で改行する
[root@test testdir]# echo abc$'\n'z
abc
z

途中で行頭に移動
[root@test testdir]# echo abc$'\r'z
zbc
[root@test testdir]# echo abc$'\r'zz
zzc
[root@test testdir]# echo abc$'\r'zzz
zzz


途中で改行する
[root@test testdir]# echo abc$'\n'zzz
abc
zzz
[root@test testdir]#


■16進数で出力して、バイトコードを確かめた。

〇echoコマンドで、CRを出力し、16進数表記に変換
[root@test testdir]# echo $'\r' | hexdump
0000000 0a0d
0000002

上記2バイト0a0dは、アドレスの順序がひっくり返って表示されているように見えるので注意する。
即ち、下記のように、0dのバイトコードの方が先のアドレスにある。 
後の0aは、echoコマンドが最後に自動的に付加したものである。

0番目 0d
1番目 0a
2番目


〇echoコマンドで、LFを出力し、16進数表記に変換
[root@test testdir]# echo $'\n' | hexdump
0000000 0a0a
0000002

〇echoコマンドで、CRとLFを出力して、16進数表記に変換
[root@test testdir]# echo $'\r\n' | hexdump
0000000 0a0d 000a
0000003
0番目 0d
1番目 0a
2番目 0a
3番目 00



■UNIXと、Windowsの改行コードの違いと、相互変換について

LF( \n )は、UNIXの改行コードである。
CR LF( \d\n )は、Windowsでの改行コードである。

次のようにして相互に変換することができる。


〇UNIXの改行コードLF( \n )を、Windowsの改行コードCR LF( \d\n )に変換する。

最初に、 UNIXの改行コードLF( \n )をそのまま表示させた。
[root@test testdir]# echo $'\n' | hexdump
0000000 0a0a
0000002

変換した。
[root@test testdir]# echo $'\n' | unix2dos | hexdump
0000000 0a0d 0a0d
0000004
0aが、0d0aに変換されたことがわかる。
後の、0a0d は、echoコマンドが自動的に付加した0aが変換されたものである。 

0番目 0d
1番目 0a
2番目 0d
3番目 0a


Windowsの改行コードCR LF( \d\n )をUNIXの改行コードLF( \n )に変換する。

最初に、 WINDOWSの改行コードCR LF( \r\n )をそのまま表示させた。
[root@test testdir]# echo $'\r\n' | hexdump
0000000 0a0d 000a
0000003




変換した。
[root@test testdir]# echo $'\r\n' | dos2unix | hexdump
0000000 0a0a
0000002

0d0aが、0aに変換されたことがわかる。
echoコマンドが自動的に付加した0aは、UNIXの改行コードなので影響を受けていない。



(参考)
・What is the exact meaning of IFS=$'\n'?
< http://stackoverflow.com/questions/4128235/what-is-the-exact-meaning-of-ifs-n > 2016年9月9日

投げ銭

★当サイトへの投げ銭(PayPal)★

Ad

Ad