为什么在 Cygwin 中运行的脚本中的 grep 在其 (grep) 的输出重定向到另一个文本文件时不维护文本文件的列式输出 - 比如说,一个 x、y 坐标列表,用 x 和 y 标记,它可以分成 2 个文件 (一个是 x 坐标,另一个是 y 坐标,其中 xs 和 ys 可以通过 sed 移除)。相反,它输出的是一开始是一列数字,然后是行间用空格分隔的数字?我试过 Cygwin 网站,但有太多垃圾需要浏览。
答案1
可能是因为grep
,当给定两个或更多文件名参数时,会在每行前面添加文件名和冒号。如果列由制表符分隔,制表位将不会位于同一位置。
该-h
选项禁止文件名前缀,并且应避免任何错位,因为grep
不会修改其输入行(除了在文件名前面添加)。
expand
您还可以考虑用空格代替制表符来过滤输入文件。
如果这不能解决问题,请发布一些示例输入和输出。