特定のディレクトリにDOSファイルが存在するかどうかを確認したいと思います。^ M文字以外に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 の改行を挿入すると、次の出力が表示されますfile
。
test_file.txt: ASCII text, with CRLF line terminators