在bash中粘贴具有扩展分隔符的文件

时间:2014-07-31 03:41:20

标签: bash paste

美好的一天!

今天,我想知道如何使用此分隔符粘贴多个文件:,,

当我使用时:

paste -d',,' ...

输出只引入一个,

我需要双逗号来更好地处理csv文件,提前感谢任何线索

3 个答案:

答案 0 :(得分:3)

如果您可以识别文件中未使用的字符,则可以分两步完成。

paste -d '~' file1 file2 | sed 's/~/,,/'

显然,如果您的数据中已存在波形符,请使用其他分隔符。控制角色可能是一个相当安全的赌注,代价是操纵稍微麻烦。 (在Bash中,您可以使用例如$'\001'来生成ctrl-A等)。

答案 1 :(得分:3)

这有效:

paste -d, file1 /dev/null file2

文档说:

  

如果输入文件到达文件结尾        当其他输入文件仍然包含数据时,该文件被视为无限的空行源。

由于/dev/null立即返回EOF,它将只是空行的无穷无尽的来源。这些将作为两个真实文件内容之间的空字段插入。

答案 2 :(得分:1)

awk 命令也可以使用 OFS=',,' 完成这项工作:

awk -v OFS=',,' 'NR==FNR{a[FNR]=$0; next} {print a[FNR], $0}' file1 file2