cat 文件与 shellscript 中的换行符一起
我在目录中递归地将文件组合在一起,但是,某些文件在最后一行之后缺少换行符,因此这会产生问题。
如何向进程中的每个文件附加换行符?这是 shell 脚本
find $1 -type f |xargs cat > test.csv
I am cating files together recursively in a directory, however, some files are missing a newline after the last line, so this creates a problem.
How do I append a newline to each file in the process? here's the shellscript
find $1 -type f |xargs cat > test.csv
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我意识到这是一个相当老的问题,但我也遇到了同样的问题。由于使用了反引号和 /usr/bin/find,上面的答案似乎都不适用于包含空格的文件。这样做需要我更改 $IFS ,除非您只需要使用文件,否则绝对没有必要。
这是我的看法:
I realize this is a fairly old question, but I had the same problem. None of the answers above seemed to work with files with whitespace in them, because of the usage of backticks and /usr/bin/find. Doing so would require me to change $IFS which is absolutely not necessary unless you only need to use files.
This is my take on it:
您可以使用循环:
You can use a loop:
使用 for 循环:
Use a for-loop:
或者
or
如果您想为任何没有换行符作为最后一行的文件添加换行符,您可以执行以下操作:
编辑:我的第一个答案使用了 xargs,但没有提供预期的结果,所以下降回到循环。
If you wanted to add a newline for any file that does not have a newline on its own as the last line, you can do the following:
EDIT: My first answer used xargs, but that didn't provide the expected result, so fell back on a loop.