その場合、テキストファイル中の改行コードを変換する必要があります。
すなわち、
Windowsで使われる改行コードCrLf(キャリッジリターン ラインフィード)を、
Linuxで使われる改行コードLf(ラインフィード)へ、
置き換え、変換します。
昨日(2024年5月24日)のブログ記事では、
改行コード変換にLinuxの置換コマンドsedを使えるはず
sedを使えば改行コード変換ができるはず
と書きました。
昨日の記事は、
⇒ こちらをご覧ください。
んで、sedコマンドを使えば、果たしてそのとおりにできるのかどうか、
さっそく、挑戦してみました。
そうしたならば、実にあっけないほど簡単に変換が成功し、完了しました。
方法は、次のとおりです。
$ sed -i 's/\r//g' HogeHoge.txt
sedによって文字列置換を実行するには、スクリプトに「s」コマンドを使います。
その書式は、
s/置換前文字列/置換後文字列/フラグ です。
置換後文字列を指定せずに空にすることで、空文字に置換する、すなわち置換前文字列を削除することができます。
また、フラグは省略可能ですが、省略した場合は、行頭から探して最初に見つかった文字列だけを置換して、その時点で処理を終了します。
そこで、見つかったすべての文字列を置換したい場合は、「g」フラグを付けます。
上記コードを記述するのに一つだけ戸惑ったのが、置換前文字列の箇所に改行コード「Cr(キャリッジリターン)」を指定するには、どう書くかという点です。
調べたところ、改行コード「Cr(キャリッジリターン)」を表す正規表現は、「\r」だそうです。
それで、
$ sed -i 's/\r//g' HogeHoge.txt
になったというわけです。
なお、
Linux上の「\r」(バックスラッシュ・アール)は、 Windows環境の画面上では、
「¥r」(円マーク・アール)と表示されます。ただ、2つは同一です。・・・参考までに。
Linuxコマンドも、使いこなせるようになればなかなかおもしろくて楽しめる上に、便利ですねぇ
それでは、また次の記事で
■■■■ goosyun ■■■■
《2024年9月22日追記》
キャリッジリターンの除去に、trコマンドも使えます。
⇒ こちらの記事をご覧ください。
最近の「Ubuntu」カテゴリーもっと見る
最近の記事
カテゴリー
バックナンバー
人気記事