paste 커맨드

unix and linux 2016. 12. 26. 21:57



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 *의 덜 복잡한 포맷이 된다.


Posted by '김용환'
,