Bash에서 붙여넣기 명령을 사용하여 두 개의 새 줄을 만듭니다.

Bash에서 붙여넣기 명령을 사용하여 두 개의 새 줄을 만듭니다.

Linux bash에서 붙여넣기 명령을 사용하여 각 파일 사이에 두 개의 공백을 두고 세 개의 파일을 하나의 파일에 붙여넣고 싶습니다.

paste -d '\n\n' file1.txt file2.txt file3.txt > output.txt

paste -d '\n'하지만, 사이에는 전혀 차이가 없습니다 paste -d '\n\n'.

file1이 단일 숫자 "1"로 구성되고, file2가 "2"로 구성되고, file3이 "3"으로 구성된다고 가정하면 항상 다음과 같은 결과를 얻습니다.

1
2
3

하지만 나는 원한다:

1

2

3

내 코드가 작동하지 않는 이유는 무엇입니까?

답변1

-d입력의 모든 개행 문자를 바꾸는 역할은 단 하나입니다 . 인용하다POSIX 문서유틸리티의 경우(굵은 글씨):

-d list
...이러한 요소는 입력 행의 <newline>을 대체하기 위해 기본 <tab> 대신 사용할 하나 이상의 구분 기호를 지정합니다.요소목록재활용해야한다;즉, 목록이 소진되면 목록의 첫 번째 요소가 재사용됩니다. ...

원하는 것을 달성하려면(실제 사용 사례에 따라 더 효율적일 수 있는 다른 도구로 전환하지 않고) 다음을 사용할 수 있습니다.

paste -d '\n' file1.txt /dev/null file2.txt /dev/null file3.txt /dev/null

(이렇게 하면 예상 결과와 비교하여 원하지 않는 최종 개행 문자도 추가됩니다.)

관련 정보