
OS:Solaris2.6
改行コードをunixからms-dosへ、ms-dosからunixへ変換したいと思っています。
ながれとしては、ms-dosで作成したファイルをunixのほうで編集(プログラム)
して、再びms-dosに戻すといったことがしたいと思っています。
そこで、
nkf -e aaa | tr '\r\n' '\n' > bbb
nkf -e ccc | tr '\n' '\r\n' > ddd
aaa:ms-dos
ccc:編集後のファイル
これでできると思ったのですが、dddの改行コードの表示がE'で
Macintoshの改行コードになってしまします。
また、bbbのファイルですが改行が2回行われてしまいます。
例
aaa のファイルの内容
123
456
bbb のファイルの内容
123
456
どのようにすれば、解決できるか教えていただけないでしょうか?
お願いします。
No.8ベストアンサー
- 回答日時:
ちなみに、
sed では通常 \n を行の区切りとして認識しているので、
s/\n/\r\n/
は、そもそも前半部分がマッチしません。つまり、一度もこの置換コマンドは実行されません。
上記のようなことに対応するのが、
s/$/\r/
になりますが、たぶん、\rは文字通り 文字\ と 文字r として認識されてしまうと思います。そこで、
s/$/^M/
とするわけです。
No.7
- 回答日時:
Ctrl+V Ctrl+Mは、
以下のように打ってください。
Ctrlキーを押し、押した状態でvを押し、両方はなす。
つぎに、
Ctrlキーを押し、押した状態でmを押し、両方はなす。
画面上の表示は「^M」になるはずです。
No.6
- 回答日時:
自信がなかったので、さっき書きかけて消してしまったのですが、
sed 's/^M$//'
でCRの削除、
sed 's/$/^M/'
でCRの追加ができないでしょうか?
^M は CR,つまり Ctrl + M ですが、そのままでは打てないと思うので、
Ctrl+V Ctrl+M として入力してみてください。
この回答への補足
ありがとうございます。
もしかしたらsedでできるかもと思いやってみたのですが
うまくいきませんでした。(sed の使い方もあやしいですが)
nkf -e ccc | sed 's/\\n/\\r\\n/g' > ddd
上記のsed 's/$/^M/' ですが、^Mの部分にCtrl+V Ctrl+Mと書くわけ
ではないですよね?
> ^M は CR,つまり Ctrl + M ですが、そのままでは打てないと思うので、
> Ctrl+V Ctrl+M として入力してみてください。
の方法が良くわからないです。
これは行末に^Mを表示させる(?)ということでしょうか?
No.5
- 回答日時:
nkf に -Lu オプションをつけると
で出力の改行コードがUNIX型(LF)に、
nkf に -Lw オプションをつけると
で出力の改行コードがWindows型(CRLF)
になるようですよ。
この回答への補足
ありがとうございます。
trの使い方が間違っていておはずかしいかぎりです。
nkf のバージョンですが、1.9ではないようです。
nkfのバージョン1.9をインストールしたいと思うのですが
なかなか見つかりません。
これは、フリーソフトでインストールできるのでしょうか?
また、trでは unix → ms-dos への変換はできなさそうですね。
他に何か変換コマンドみたいなのはありますか?
No.3
- 回答日時:
ちなみに、trというコマンドの使い方が違いますね。
例えば、
tr 'abc' 'def'
というコマンドでは、
「aがでてきたらdに変換する。」
「bがでてきたらeに変換する。」
「cがでてきたらfに変換する。」
ということを同時に行なうわけです。
2番目の文字列がはじめの文字列より短い場合は、2番目の文字列の最後の文字が繰り返されます。
例
tr 'abcdef' 'ghi'
は、
tr 'abcdef' 'ghiiii'
と同じ動作になる。
2番目の文字列がはじめの文字列より長い場合は、2番目の文字列のあまっている文字が無視されます。
例
tr 'abc' 'ghijkl'
は、
tr 'abc' 'ghi'
と同じ動作になる。
というわけで、
nkf -e aaa | tr '\r\n' '\n' > bbb
は
nkf -e aaa | tr '\r\n' '\n\n' > bbb
つまり、
nkf -e aaa | tr '\r' '\n' > bbb
という変換のみを行なっており、
また、
nkf -e ccc | tr '\n' '\r\n' > ddd
は
nkf -e ccc | tr '\n' '\r' > ddd
という変換を行なっています。
No.2
- 回答日時:
ms-dosからunixへのファイルの転送はどのように行なっていますか?
FTPを使っているのなら、ASCIIモードで転送すれば、改行コードは自動的に変換されるはずです。
No.1
- 回答日時:
nkfのバージョンはいくつですか?
手元のVer.1.9には、
----
d,c Delete \r in line feed, Add \r in line feed
----
というオプションがあるので、これで出来ると思いますよ。
この回答への補足
ありがとうございます。
只、手元のnkfのバージョンの見方がわかりません。
単純にnkfのVer1.9をインストールすれば良いのかもしれませんが
Ver1.9というのはどのようにすればインストールできるのでしょうか?
また無償で入手することはできますか?
それから、nkfについて良くわかっていないのですが
nkfは漢字コードのみのフィルタで改行コードは関係ない
と思っていたのですが、nkfでも改行コードを変換すること
ができるのですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(OS) WindowsとMS-DOSの違いって何ですか? 5 2022/10/26 02:19
- その他(プログラミング・Web制作) bashのgrepで複数の検索、かつスクリプト内で改行する方法を教えてください。 1 2022/10/06 20:09
- モニター・ディスプレイ 画像解像度について 4 2022/05/30 16:05
- Visual Basic(VBA) 【VBA】特定の文字で改行(次の行)に行きたい。 3 2022/04/11 17:20
- Windows 7 Windows7でMicrosoft VirtualPC2007 SP1を使用する 9 2022/11/17 13:12
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
- その他(OS) MS-DOSでなければ動かないPCゲームをXPで動かす方法を教えてください。 3 2022/08/06 18:46
- SQL Server ACCESSで3ファイルを結合して、表を作成するやり方を教えて下さい。 17 2022/08/15 20:34
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- JavaScript JavaScript|特定URLだった時、特定の要素を変更するコードの書き方を教えてほしいです 2 2023/08/25 21:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【文字コード】コピー&ペース...
-
HDDの文字化けをconvmvを使って...
-
Macで簡単に改行を解除したい
-
メモ帳での一括たて列選択
-
UTF-8 環境をSJIS化した後の改...
-
RedHatで使えるエディタ
-
Windows日本語版のテキストファ...
-
Macのメールファイルに一括で拡...
-
ときどきSafariでここをみてる...
-
改行を表す文字はありますか?
-
WinとMacで互換性のあるテキス...
-
Windows版でviのようなエディタ
-
emacs で英字の禁則はできない...
-
LinuxMintで,Windows時代に作成...
-
SolarisからLinuxへコピーした...
-
掲示板の書き込みの改行
-
メールに添付で送られてきたメ...
-
.batファイル作成 mailto: コ...
-
winの.txtデータをmacで
-
ファイル名の一括リネーム
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Macで簡単に改行を解除したい
-
メモ帳での一括たて列選択
-
【文字コード】コピー&ペース...
-
LinuxMintで,Windows時代に作成...
-
テキストで特定の文字列を含む...
-
FTP 文字化け
-
WinとMacで互換性のあるテキス...
-
コピー&ペースト時の文字コー...
-
ファイル名の付け方(中央揃え)
-
MS-DOSテキストファイルっ...
-
ドラッグ&コピー→デスクトップ...
-
アイコンの名前の改行
-
htmlファイルが編集できない
-
RedHatで使えるエディタ
-
メモ帳の出力形式
-
.batファイル作成 mailto: コ...
-
XMLの表示文字化け
-
UTF-8 環境をSJIS化した後の改...
-
制御文字について
-
Linuxで書いたプレーンテキスト...
おすすめ情報