안녕하세요. 오늘은 리눅스 seq 명령어를 알아봅시다.

 


 먼저 man 페이지를 봅시다.

 

 

 이 명령어는 number의 순서를 출력합니다. LAST만 주는 것이 있고, FIRST와 LAST를 주는 것이 있고, FIRST, INCREMENT, LAST 3개를 주는 것이 있습니다. 이 중에, INCREMENT는 step을 의미해요. 예제를 보면서 이해해 보도록 하겠습니다.

 

 

 먼저 seq 10을 입력했더니 1부터 10까지 출력되었습니다. LAST만 주어진 경우인데요. 이 때에는 default로 시작 수가 1이 됩니다.

 

 

 이것을 c언어의 for loop로 치면 위와 같아요.

 

 

 다음에 seq 5 10은, FIRST와 LAST가 주어진 상황입니다. 시작 수가 5이고, 끝 수가 10이니까, 5부터 10까지 출력되었습니다.

 

 

 이 프로그램도 5부터 10까지 출력합니다. 어렵지 않죠?

 

 

 다음에 3개의 수가 주어졌어요. 5 2 10. 이것은 5부터 10까지 출력하는데, INCREMENT가 2라는 소리입니다. 즉, 5, 7, 9 ... 이런 식으로 증가한다는 의미입니다. 10보다 작거나 같을 때 까지 출력하면 되므로, 5, 7, 9가 출력됩니다.

 

 

 c언어로 치면 위와 같아요. loop를 돌고 i++이 되던 것이 i=i+2가 되었어요. 2씩 껑충 껑충 뛴다는 의미입니다. 그런데 증가만 있나요? 감소하는 것도 있지 않을까요? 변수 x가 계속 감소해서 특정 수 이하가 될 때 까지 for loop를 돌리는 것도 상당히 많이 쓰입니다. 그런 것처럼, 역순으로 돌리는 것도 경우에 따라서 상당히 유용하게 쓰일 수도 있어요. 그 방법도 같이 알아봅시다.

 


 10부터 1까지 역순으로 출력해 봅시다. -1씩 증가한다고 생각하시면 간단합니다.

 

 seq 10 -1 1은 시작 수가 10이고, 끝 수가 1이라는 것을 의미합니다. 그리고 증가 폭이 -1인데요. 이는 1씩 감소하는 것을 의미해요. 결과는 10, 9, 8, ... , 1이 순서대로 출력되는 것입니다.

 

 

 c언어로 치면 위와 같아요. i는 10부터 1까지 도는데, -1씩 증가하는 상황이죠. 10에서 -1만큼 증가하면, 1만큼 감소하는 것이랑 같으니, 9가 될 겁니다.

 

 

 이것은 어떨까요? 10부터 시작하는데 2씩 감소합니다. 10, 8, 6, 4, 2. 2에서 2 더 감소하면 0인데요. 이는 [1, 10]에 속하지 않습니다.

 

 

 for loop로 바꿔보면 위와 같아요. 이 명령어가 단독으로 쓰일지는 잘 모르겠습니다. 하지만, shell programming을 하시다 보면 의외로 많이 써먹을 수도 있을 듯 싶어요. 시퀀스랑 for loop는 생각보다 잘 어울리기 때문입니다.