質問

かけると、特定のSQLスクリプトをUnix環境では、私は午見'^M'文字の末にラインのSQLスクリプトそのまま響きのコマンドライン。いるOSのSQLスクリプトされました。

何が起こることはどうしたらいいですか?

役に立ちましたか?

解決

このよDOS/Windows線-終了文字です。のようにアンディ-ウィットフィールド言われたが、Unixコマンドdos2unix助の問題です。もう少し詳しい情報を読むことができmanページにそのコマンドです。

他のヒント

直線の終わりに vi については、以下の

:set fileformat=unix

:w

の原因の違いをどのようにWindowsベースの系OS,Unix系OSの行末のマーカー

Windowsベースの経営システム、そのDOS遺産保存のラインペアとしての文字- 0x0D0A (cr+lf).Unix系のosで使用 0x0A改行).の ^M だ見に視覚的に表現 0x0D復帰).

dos2unix す。ほとんどの場合も調整が必要であるソースのスクリプトが"Unix ー向けの'.

最も簡単な方法は使用 vi. 知っている音がひどい そのシンプルに既にインストールされているのUNIX環境です。の^Mが新ラインからの窓/DOS環境です。

からのコマンドプロンプト: $ vi filename

そして、":"をコマンドモードになります。

検索と置換すべての世界は :%s/^M//g "押制御押V M"また、機^Mです。

その後、その終了を入力し:wq"完了!

使ってみdos2unixグレーのクラムシェル型クランプの^M.

おい :%s/^M//g

を取得 ^MCTRL キーを押すと、 V その M (両持の制御キー) ^M が表示されます。このすべての発生と差し替えています。

のSQLスクリプトはもともと作成したWindows OS.の^M'文字の結果、WindowsとUnixの異なる考えは、行末文字です。利用できるperlのコマンドラインを修正。

perl -pie 's/\r//g' filename.txt

の^Mは、一般的に、クマラコムボートジェッティなオペレーター改行、翻訳をUnixのように見^M.コマンドのdos2unixはできるだけ除去することが望していく

dos2unix[オプション][-c convmode][-oファイル...][-n infile outfile...]

C:\tmp\text>dos2unix hello.txt helloUNIX.txt

Sedで幅広くご利用いただけることができないかも合dos2unixが入っていない

C:\tmp\text>sed s/\r// hello.txt > helloUNIX.txt  

このまま試tr:

cat hello.txt | tr -d \r > helloUNIX2.txt  

この結果:

C:\tmp\text>dumphex hello.txt  
00000000h: 48 61 68 61 0D 0A 68 61 68 61 0D 0A 68 61 68 61 Haha..haha..haha  
00000010h: 0D 0A 0D 0A 68 61 68 61 0D 0A                   ....haha..  

C:\tmp\text>dumphex helloUNIX.txt  
00000000h: 48 61 68 61 0A 68 61 68 61 0A 68 61 68 61 0A 0A Haha.haha.haha..  
00000010h: 68 61 68 61 0A                                  haha.  

C:\tmp\text>dumphex helloUNIX2.txt  
00000000h: 48 61 68 61 0A 68 61 68 61 0A 68 61 68 61 0A 0A Haha.haha.haha..  
00000010h: 68 61 68 61 0A                                  haha.  

交換^M字viエディタ以下のご利用

このテキストファイルを開きうt1.txt

vi t1.txt

入力コマンドを押すことによってモード shift + :

そのキーを押して %s/^M/\r/g

in above ^M is not (shift + 6)M instead it is (ctrl + V)(ctrl + M)

代替 dos2unix コマンドが標準備など sed.

例えば、 dos unix:

sed 's/\r$//' dos.txt > unix.txt

unixへのdos:

sed 's/$/\r/' unix.txt > dos.txt

削除ができます^Mからのファイルを直接sedコマンドの例:

sed -i'.bak' s/\r//g *.*

ックスの変更、取り外します。bakファイル:

rm -v *.bak

変換DOS/Windows )の線の終了にUnix( )の線終わり、tr:

tr '\r\n' '\n' < dosFile.txt > unixFile.txt

ポストを置き換え改行からのUnixコマンドライン

od -a $file 有探ているので、それらの問題Linux(dumphexします。

Perlでは、かない場合には設定したい$/変数を使chomp()もできます:

$var =~ /\r\n//g;

私の二つのセント

他のコマンドのviただい: :%s/.$// これ最後の文字の各ラインのファイルです。は、この検索と置換のコマンドはしないよう最後の文字がないように注意してください呼んでいます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top