僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
sed で ^M を消す方法。
CRは\r なので、これだけ消せば良い。
$ cat foo.txt | hexdump -c 0000000 1 2 3 \r \n 4 5 6 \r \n 7 0000010 8 9 \r \n 0000015
$ sed -i 's/\r//' foo.txt
$ hexdump -c foo.txt 0000000 1 2 3 \n 4 5 6 \n 7 8 0000010 9 \n 0000012
逆の場合は、 $を\rにする。
$ sed -i 's/$/\r/' foo.txt $ hexdump -c foo.txt 0000000 1 2 3 \r \n 4 5 6 \r \n 7 0000010 8 9 \r \n 0000015
MySQLでは 'も\も使えるらしい。
mysql> insert into string_tbl -> (char_fld, vchar_fld, text_fld) -> values -> ('foo''bar', 'baz\'z', 'ふが'); Query OK, 1 row affected (0.01 sec) mysql> select * from string_tbl; +----------+-----------+----------+ | char_fld | vchar_fld | text_fld | +----------+-----------+----------+ | bar | NULL | ほげ | | foo | NULL | ♕ | | foo'bar | baz'z | ふが | +----------+-----------+----------+
Postgresでは'だけみたい。
SQLiteもたぶん同様。
mydb=> insert into first (char1) values ('あ''は'); mydb=> select * from first; number | char1 --------+------- 1 | ほげ 2 | ふが 3 | 4 | あ'は (4 行)
MySQLとPostgresとSQLite3。
mysql> select '白クイーン' 項目, char(0xe29995) 文字; +-----------------+--------+ | 項目 | 文字 | +-----------------+--------+ | 白クイーン | ♕ | +-----------------+--------+ 1 row in set (0.00 sec)
mydb=> select 'White Queen' char_type, chr(9813) a_glyph; char_type | a_glyph -------------+--------- White Queen | ♕ (1 行)
sqlite> select '白い女王', CHAR(9813); '白 CHAR(9813) ---- ------------- 白い女王 ♕
というSQL文の違いをついでに。
mysql> select concat('ABC', char(0xe381a8), 'DEF'); +--------------------------------------+ | concat('ABC', char(0xe381a8), 'DEF') | +--------------------------------------+ | ABCとDEF | +--------------------------------------+ 1 row in set (0.00 sec)
mydb=> select concat('abc', chr(12392), 'def'); concat ---------- abcとdef (1 行)
sqlite> select 'abc' || char(0x3068) || 'def'; 'abc ---- abcとdef
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。