Linux에서는 paste
(GNU coreutils) 8.13에서 다음과 같은 문제가 있습니다.
기본값 (TAB) 이외의 다른 분리 문자를 설정하려고하면 정의 된 분리 문자의 첫 문자 만 인쇄하거나 완전히 무시합니다.
질문 : 사용할 때 (다중) 구분 기호를 어떻게 정의 paste
합니까?
예를 들어 abc-123 을 구분자로 사용하는 것이 좋습니다. “다중”의 경우, 예를 들어 1 대신 2 TABS를 의미합니다.
지금까지 시도한 구분 기호를 포함하는 패턴은 다음과 같습니다.
--delimiters="\delimiter"
--delimiters='\delimiter'
--delimiters=$"\delimiter"
--delimiters=$'\delimiter'
모두 동일한 결과 : 첫 번째 문자 만 허용되거나 완벽하게 무시됩니다. 또한 짧은 버전 -d"\"
과 여러 인스턴스를 시도했습니다 . & ndahs; 아무것도.
또한:
--delimiters="\\"
→ 오류 메시지
내가 원하는 것은 아니지만 완벽하게 작동하는 것 :
--delimiters="\n"
→ 줄 바꿈--delimiters="\0"
→ 사이에 아무것도--delimiters="\t"
→ TAB기본값입니다. 큰.
답변
abc
file1과 file2 사이 를 가지려면 다음을 수행하십시오.
paste -d abc file1 /dev/null /dev/null file2
또는:
paste -d abc file1 - - file2 < /dev/null
두 개의 탭이 필요한 경우 :
paste file1 /dev/null file2
답변
결합 할 파일을 두 개만 제공하기 때문에 구분 기호 문자열의 각 문자는 각 입력 파일의 각 행 결합 사이에 사용됩니다.
예 :
file1 line1 DELIMCHAR0 file2 line1 DELIMECHAR1 file3 line1 ...
file1 line2 DELIMCHAR0 file2 line2 DELIMECHAR1 file3 line2 ...
...
답변
BSD 시스템 (리눅스가 아님 lam
)에는 위의 솔루션보다 더 빠르고 짧은 ( “라미네이트”와 같은) 유틸리티가 있습니다.
lam file1 -s delimiter file2