質問

特定のディレクトリにDOSファイルが存在するかどうかを確認したい。 ^m charsとは別に、DOSファイルをUNIXと区別する方法はありますか?

ファイルを使用しようとしましたが、両方に同じ出力を与えます。

$ file test_file
test_file: ascii text

変換後:

$ unix2dos test_file test_file
$ file test_file.txt
test_file.txt: ascii text
役に立ちましたか?

解決

CRLF(\r\n, ^M)ラインエンディングチャーは、UNIXとDOS/Windows ASCIIファイルの唯一の違いであるため、他の方法はありません。

あなたがしなければならないならあなたが試すかもしれないこと fromdos コマンドは、出力を元のファイルと比較することです。

file=test_file
fromdos < $file | cmp $file -

これは失敗します(ゼロ以外 $?) もしも fromdos 剥がれた \r あちらへ。

dos2unix 同様の方法で使用される可能性がありますが、その正確な構文はわかりません。

他のヒント

実際にWindows Newlinesを入れた場合、次の出力が表示されます file:

 test_file.txt: ASCII text, with CRLF line terminators
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top