【问题标题】:Append Newlines to All Files in a Directory in Linux将换行符附加到 Linux 目录中的所有文件
【发布时间】:2013-01-14 18:56:24
【问题描述】:

我在 Visual Studio 中有一个可以成功构建和运行的项目。我需要让它在 Linux 中工作。一个问题是换行符与 Linux 中的不同,因此我收到大量警告说“文件末尾没有换行符”。一个接一个地向所有文件添加换行符很乏味,我想知道是否有一个Linux命令可以用来对目录中的所有文件执行相同的操作(这里,操作是将换行符附加到文件末尾)在 Linux 中?

提前致谢!

-莉奥诺拉

【问题讨论】:

  • tag perl 你会得到最高阶的魔法
  • 根据@Gereon 的回答,复制到您的Linux 机器,然后运行dos2unx *。如果没有dos2unix,请在此处搜索替代品。祝你好运。
  • 是你的源代码有换行问题吗?
  • @SamIam,是的,实际上,我的一些源代码末尾根本没有换行符,这不仅仅是关于 windows 到 linux 的转换

标签: linux command-line newline


【解决方案1】:

大多数 linux 都有一个dos2unix 命令来帮助文件转换。

【讨论】:

  • 谢谢!那么这个命令会起作用吗?寻找 。 -name "*.cpp" -print0 | xargs -0 dos2unix
  • 或者更确切地说是find . -name "*.cpp" -o -name "*.h" -exec dos2unix {}\;
  • 谢谢。您的命令有效,转换已完成,但是我仍然收到一些关于文件末尾没有换行符的警告。我认为这是因为在某些文件中根本没有任何换行符,甚至在 Visual Studio 中也没有。所以转换后它仍然没有换行符。如果我一个接一个地添加换行符,我会回显“\n”>> someFile.cpp,但是还有一种方法可以为目录中的所有文件批量生成它吗?
  • 如果您真的想对所有文件执行此操作,请尝试for f in *; do echo "\n" >>$f; done
猜你喜欢
  • 2021-07-05
  • 2012-04-08
  • 1970-01-01
  • 2011-09-25
  • 1970-01-01
  • 1970-01-01
  • 2012-10-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多