使用sed合并多个csv文件

发布于 2024-09-17 15:41:49 字数 296 浏览 3 评论 0原文

我有 3 个 csv 文件想要合并。每个文件都有 3 个逗号分隔的列。

File 1 has columns a,b,c
File 2 has columns d,e,f
File 3 has columns g,h,i

我想将这 3 个文件合并为一个文件:

a,b,c,e,f,h

我可以使用 sed 来做到这一点吗?

我可以很容易地编写控制台应用程序或脚本,但我正在尝试获得一些 sed 技能并相信这应该是一个合适的任务?

I have 3 csv files I'd like to combine. Each file has 3 comma delimited columns.

File 1 has columns a,b,c
File 2 has columns d,e,f
File 3 has columns g,h,i

I'd like to combine the 3 files into a single file of:

a,b,c,e,f,h

Can I use sed to do that?

I could write a console app or script easily enough but I'm attempting to get some sed skills and believe this should be a suitable task?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

丘比特射中我 2024-09-24 15:42:53

Mat Mendel 的答案很好,除非您碰巧在 Windows 上使用 cygwin,在这种情况下,一些烦人的行尾字符怪癖就会发挥作用。这取决于 unix 命令实用程序,在本例中粘贴和剪切,使用 \n 作为行结束符,而不是 Windows 想要的 \r\n。

我无法快速弄清楚如何更改这些 utils 或 cygwin 的行尾字符,所以我很高兴能够使用 sed。

paste -d ',' file1 file2 file3 | sed 's/\r//g' | cut -d ',' -f 1,2,3,5,6,8 | sed 's/$/\r/'

Mat Mendel's answer is good to go unless you happen to be on Windows using cygwin in which case some annoying end of line character quirks come into play. This is down to the unix command utilities, in this case paste and cut, using \n as the end of line character instead of the \r\n that Windows wants.

I couldn't qucikly work out how to change the end of line character for those utils or cygwin in general so I was happily able to make use of sed after all.

paste -d ',' file1 file2 file3 | sed 's/\r//g' | cut -d ',' -f 1,2,3,5,6,8 | sed 's/$/\r/'
℡寂寞咖啡 2024-09-24 15:42:42

你可以这样做:

paste file[123] | sed 's/\t/,/g' | cut -d',' -f 1,2,3,5,6,8

You can do:

paste file[123] | sed 's/\t/,/g' | cut -d',' -f 1,2,3,5,6,8
遇到 2024-09-24 15:42:29

或者只是剪切并粘贴:

paste -d ',' file[123] | cut -d ',' -f 1,2,3,5,6,8

Or just cut and paste:

paste -d ',' file[123] | cut -d ',' -f 1,2,3,5,6,8
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文