인라인 구분 기호를 사용하여 해당 줄을 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})
또는 $n
변수 인 경우 seq
중괄호 확장 대신 사용합니다.
paste -d, $(printf 'example.csv %.0s' $(seq 1 $n))
(통과하다)
답변2
줄 끝을 그대로 유지할 필요가 없고 이를 유닉스 스타일로 변환할 수 있다고 가정하고 다음을 수행합니다.
dos2unix file
두 번째 단계에서는 다음을 사용합니다 awk
.
awk '{for(i=1;i<=3;i++){if(i>1)printf ",";printf $0};printf "\n"}'
awk는 루프에서 문자열을 구성하고 i<=3
문자열의 일부를 지정된 횟수만큼 반복합니다.
if
,
반복 사이에만 시간이 있는지 확인해야 합니다 .
최종 결과는 유닉스 스타일 출력이 됩니다. 필요한 경우 다시 dos로 변환할 수 있습니다 unix2dos
.