web-dev-qa-db-ja.com

特定のファイルからコントロールM文字を削除し、ファイル全体で改行文字が唯一の文字である場合はそれを削除します

Abc.txtという名前のファイルとその空のファイルがあります。一部のジャンク文字またはコントロールM文字のため、ファイルサイズは5バイトファイルとして入力されます。クリーンなファイルを作成するために、dos2unixコマンドを使用して不明な文字を削除しています。 dso2unixコマンドを使用した後、改行文字のみが含まれているため、ファイルサイズが1バイトであることがわかります。ファイル全体で改行文字が唯一の文字である場合、改行文字を削除する方法を教えてください。

回避策:

cat abc.txt 

cat -v abc.txt
M-oM-;M-?^M

ll abc.txt
-rw-r--r-- 1 ORAPRD ADMIN 5 Jan 25 07:08 abc.txt

dos2unix abc.txt
dos2unix: converting file abc.txt to Unix format ...

ll abc.txt
-rw-r--r-- 1 shpprd ADMIN 1 Jan 25 07:09 abc.txt

cat -v abc.txt

od -c abc.txt
0000000 \n 
0000001

誰かがこれに対する解決策を持っていますか?

ありがとうございました。

1
Rak kundra

dos2unix abc.txtDOSテキストファイルをUnixテキストファイルに正常に変換しました。

ファイルにはまだ改行文字が含まれています。これは、テキストファイルに含めるのに完全に有効なものです。それは単に空のテキスト行です。

ファイルを完全に切り捨てたい場合は、

>abc.txt

シェルでそれを行います。


ファイルの終わりにある空の行を削除するには、「 EOFで複数の改行を削除する方法 "」を参照してください。

0
Kusalananda