我想使用内联分隔符重复该行 n 次(即不生成额外的行)。例如,对于包含两行的文件 example.csv
0.1\r\n
0.2\r\n
n=3 且逗号作为分隔符的结果是
0.1,0.1,0.1\r\n
0.2,0.2,0.2\r\n
我尝试使用 n=2 的粘贴命令:
paste -d, example.csv example.csv
但是,EOL 也已粘贴:
0.1\r,0.1\r\n
0.2\r,0.2\r\n
答案1
修复行尾后
dos2unix example.csv
您可以使用printf
重复文件名n
次数。
paste -d, $(printf 'example.csv %.0s' {1..10})
或者 if$n
是一个变量,使用seq
而不是大括号扩展:
paste -d, $(printf 'example.csv %.0s' $(seq 1 $n))
(通过)
答案2
假设不需要保持行尾不变并且可以将其转换为 unix 样式,请执行以下操作:
dos2unix file
对于第二步使用awk
:
awk '{for(i=1;i<=3;i++){if(i>1)printf ",";printf $0};printf "\n"}'
awk 将循环构造字符串,并在其中重复指定的i<=3
部分次数。
if
需要确保您,
只有重复之间的时间。
最终结果将是 unix 风格的输出。如果需要,您可以将其转换回 dos unix2dos
。