【发布时间】:2016-12-29 19:40:03
【问题描述】:
如何使用busybox版本的命令确定文本文件的行尾?
我的目标:列出目录中的文件以及它们是否具有 DOS 行结尾或 UNIX 行结尾。理想情况下,我希望在这样的某种循环中执行此操作:
for i in *; do
**determineEndings** $i
done
或
find . -type f | **determineEndings**
不幸的是,由于我有 busybox 版本的命令,我没有可用的 file 命令来帮助我。我为我的目标系统找到了file 的二进制文件,并将magic 文件复制到file --version 告诉我的位置,但仍然收到以下错误:
$ file -d myfile.txt
unknown, 0: Warning: using regular magic file `/usr/share/misc/magic'
file: could not find any valid magic files!
我可以为目标环境编译 C 代码,所以我可以为目标系统编译为二进制的简单 C 代码也可以工作。
【问题讨论】:
-
你能用
grep -c "\r" $i之类的东西吗? -
我想提出类似 Walther 的建议:
grep -l $'\r' *列出 Dos 文件,grep -L $'\r' *列出 Unix 文件。 -
-c建议在我的同一文件的 dos 和 unix 版本上返回90。 -
-l版本有效。谢谢 -
其实我没有正确测试。这不起作用。
标签: c bash embedded-linux busybox line-endings