paste 커맨드
paste 커맨드는 파일들의 내용을 나란히 탭으로 구분해 출력하는 리눅스 커맨드이다.
[~] cat job_name
devops
engineer
[~] cat names
sammuel.kim
jax.moon
[~] paste names job_name
sammuel.kim devops
jax.moon engineer
탭이 싫다면, -d 옵션과 delimiter를 줄 수 있다.
$ paste -d":" names job_name
sammuel.kim:devops
jax.moon:engineer
만약 여러개의 delimiter를 줄 수 있고, 파일 단위로 사용된다.
$ paste -d'+-' names job_name names
sammuel.kim+devops-sammuel.kim
jax.moon+engineer-jax.moon
파일이 4개이고, delimiter가 2개이면, delimiter가 반복되어 사용된다.
$ paste -d'+-' names job_name names job_name
sammuel.kim+devops-sammuel.kim+devops
jax.moon+engineer-jax.moon+engineer
-s 옵션을 사용하면 여러 파일이 아닌 하나의 동일 파일을 사용한다.
$ paste -s names
sammuel.kim jax.moon
탭이 기본 구분자라서 +를 구분자로 사용할 수 있다.
$ paste -s -d'+' names
sammuel.kim+jax.moon
대시(-)를 쓰면 무엇이 나올까? 표준입력을 받는 의미로 쓰인다.
$ cat job_name -
devops
engineer
$ cat job_name -
devops
engineer
// zero 입력
zero
zero
표준 입력을 ls로부터 받고 구분자를 공백으로 두려면 다음과 같은 명령어를 사용한다.
$ ls | paste -d' ' -s -
Applications Desktop Documents Downloads Dropbox
ls | paste는 echo *의 덜 복잡한 포맷이 된다.