将数据转换为逗号分隔 |壳

时间:2021-06-04 14:44:22

标签: python shell unix text-processing python-textprocessing

我有一个场景,在我的目录中有 10 个文件

每个文件作为一个柱状记录,如下所示

文件 1:

A
B
C
D

文件 2 :

C
D
F
G

2 个文件表示

预期输出:

file 1 data should be : "A","B","C","D" -> write to new file : A1.txt
file 2 data should be : "C","D","F","G" -> write to new file : A2.txt

 

我试过这个命令部分起作用,但用 ',' 命令添加最后一个值

sed -e 's/.*/\"&\"/' /d/file1.txt | tr '\n' ','

给出下面的输出,但末尾有逗号,这是额外的

"A","B","C","D",

但没有得到这种方法是否有效,或者任何更好的方法都会受到赞赏

注意:文件末尾可能包含空行/空格/制表符 应该被忽略

如何在python中编写相同的脚本

1 个答案:

答案 0 :(得分:1)

使用paste

此外,由于您正在编写 CSV,因此您想转义原始数据中存在的任何双引号

sed 's/"/""/g; s/.*/"&"/' filename | paste -s -d,

对于快速脚本很方便:捆绑的 csv 模块意味着您不必担心边缘情况。

ruby -rcsv -e '
  data = File.new(ARGV.shift).readlines(chomp: true)
  puts CSV.generate_line(data)
' file