我发现我的许多文件都有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/