前提
Window10のWSLでLinuxコマンド(sed)を使用しています。
実現したいこと
sedコマンドで行末の ,
を ;
に置換したいです。
詳細:
以下のようなSQL用のためのファイルがあります
employee_insert.txt
1(10001,'1953-09-02','Georgi','Facello','M','1986-06-26'), 2(10002,'1964-06-02','Bezalel','Simmel','F','1985-11-21'), 3(10003,'1959-12-03','Parto','Bamford','M','1986-08-28'),
これをINSERT文にすべく以下のようなコマンドを書いたのですが、なぜか行末の ,
のみ ;
に変換されません。
hoge@piyo:/mnt/c/Users/hoge/DB/data$ cat employee_insert.txt | sed -e 's/^/INSERT INTO VALUES /' -e 's/,$/;/' > test.sql
test.sql(出力結果)
1INSERT INTO VALUES (10001,'1953-09-02','Georgi','Facello','M','1986-06-26'), 2INSERT INTO VALUES (10002,'1964-06-02','Bezalel','Simmel','F','1985-11-21'), 3INSERT INTO VALUES (10003,'1959-12-03','Parto','Bamford','M','1986-08-28'),
linuxのPCではおそらく問題なかったと記憶しているのですが、WindowsでのWSLだとなぜ上手くいかないのでしょうか。
補足情報
行末に文字を適当につけてみようとしてみたところ、行末ではなく新しい行に文字が追加されていました。
これはおかしな挙動でしょうか、それとも正常なのでしょうか...
hoge@piyo:/mnt/c/Users/hoge/DB/data$ ccat employee_insert.txt | sed -e 's/^/INSERT INTO VALUES /' -e 's/$/aaaa/' > test.sql
test.sql(出力結果)
1INSERT INTO VALUES (10001,'1953-09-02','Georgi','Facello','M','1986-06-26'), 2aaaa 3INSERT INTO VALUES (10002,'1964-06-02','Bezalel','Simmel','F','1985-11-21'), 4aaaa 5INSERT INTO VALUES (10003,'1959-12-03','Parto','Bamford','M','1986-08-28'), 6aaaa
回答1件
あなたの回答
tips
プレビュー