我发现我的许多文件都有DOS行尾。在VI中,它们看起来像这样:“^ M”。
我不想修改没有这些DOS行结尾的文件。如何使用bash脚本执行此操作?谢谢!

电动车

最佳答案

grep -URl ^M . | xargs fromdos

grep会为您提供当前目录下所有具有DOS行结尾的文件的列表。
-U使grep考虑行尾而不是默认情况下将其剥离
-R使它递归
-l使它仅列出文件名,而不列出匹配的行

然后您将该列表传递到转换器命令中(这是ubuntu上的fromdos,我来自dos2unix)。

注意:实际不键入^M。相反,您需要先按<Ctrl-V>,然后按<Ctrl-M>插入^M字符,并使grep理解您要使用的功能。或者,您可以键入$'\r'代替^M(但我认为这可能仅适用于bash ...)。

关于bash - 在Ubuntu上查找并删除DOS行尾,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12508923/

10-12 15:36