特定の内容を確認するには、定期的にコマンドを実行する必要があります。テキストファイルはLinuxモードで保存されます。残念ながら、dos2unix
ファイルは常に変更され、ファイルとフォルダのタイムスタンプが混乱し、不要な書き込みが発生します。
私が書いたスクリプトはBashにあるので、Bashベースの答えを好みます。
答え1
注:これは迅速な確認のためにのみ自動化スクリプトで使用しないでください。自動化スクリプトの場合は、他の回答を確認することをお勧めします。
使用cat -A
$ cat file
hello
hello
このファイルが* NIXシステムで生成された場合は、以下が表示されます。
$ cat -A file
hello$
hello$
ただし、このファイルがWindowsで作成されると、次のように表示されます。
$ cat -A file
hello^M$
hello
^M
代表しCR
て$
代表しますLF
。
私はWindowsではWindowsメモ帳を使用し、LinuxではVimを使用します。 Windowsメモ帳は最後の行を保存しませんCRLF
。
また、ファイルの内容は変更されません。
答え2
dos2unix
これをフィルタとして使用し、出力を元のファイルと比較できます。
dos2unix < myfile.txt | cmp - myfile.txt
答え3
タイムスタンプに影響を与えないことが目標である場合は、タイムスタンプを同じままにするかオプションがdos2unix
あります。一時ファイルを作成して名前を変更するには書き込み操作を実行する必要がありますが、タイムスタンプは影響を受けません。-k
--keepdate
ファイルの変更が許可されていない場合は、次の回避策を使用できます。この回答。
find . -not -type d -exec file "{}" ";" | grep CRLF
これらのライン終了が検出されると、このfile
コマンドが出力されます。CRLF
答え4
grep
CRLFコードである8進数を試すことができます。
grep -U $'\015' myfile.txt
または16進数:
grep -U $'\x0D' myfile.txt