使用awk读取简洁的CSV完整文件

马克西米利安力量

我有一个n栏不同的csv文件,下面附有示例。如何使用awk(供使用STDIN的dbms使用)输出整个csv文件。我试过了

awk -v RS='\r\n' '{print $1 ',' $1 + 1} file

但这回绕导致第一列也被打印在末尾。另外,还有一种方法可以在读取csv时更改文件结尾,使其以'\ r \ n'形式输出。优选地寻找单线。

1, 20, Is
2, 12, this
3, 18, minimal
4, 21, enough

并且输出应该是

1, 20, Is
2, 12, this
3, 18, minimal
4, 21, enough

使用awk(no cat在终端中打印出带有换行符和逗号的相同位置

埃德·莫顿

我假设您有这样做的理由。

对于多字符RS,使用GNU awk健壮地:

awk -v BINMODE=3 'BEGIN{RS=ORS="\r\n"} 1' file

BINMODE(请参阅https://www.gnu.org/software/gawk/manual/gawk.html#Built_002din-Variables)是必需的,因为在某些平台上,底层的C原语会\r在gawk看到它们之前先使用行尾s。

idk如何使用POSIX awk处理这种​​需要BINMODE的情况,但是如果awk看到\rs并且假设您\n的记录中间没有任何s(例如,当导出包含单元格的电子表格时会那样)跨越MS-Excel中的多行),然后在任何awk中:

awk '1' file

如果您有包含换行符的字段,并且通常需要有关DOS行尾和使用awk解析CSV的更多信息,请参见:

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章