Linux에서 seq 명령을 사용하는 방법

Linux seq 명령은 눈 깜짝할 사이에 숫자 목록을 생성합니다. 그러나 이 기능을 어떻게 실용화할 수 있습니까? seq가 어떻게 유용할 수 있는지 보여드리겠습니다.

seq 명령

언뜻 보기에 Linux seq 명령은 이상한 것처럼 보입니다. 그것은 당신이 생성 할 수 있습니다 일련의 숫자 빨리 그리고 그게 다야! 하지만 여기서 키워드는 “빨리”입니다. 잠시 후 이 작은 명령이 얼마나 빨리 실행되는지 알게 될 것입니다.

그러나 생성 방법에 관계없이 숫자 목록이 얼마나 유용합니까? seq 명령은 1985년 Unix 8판에 추가되었습니다. 그 이후로 계속 있었으므로 가치 있는 일을 해야 합니다.

그만큼 유닉스의 철학 그것은 한 가지만 잘하는 작은 유틸리티로 가득 차 있다는 것입니다. 이 철학의 중심 교리 중 하나는 다른 프로그램의 입력을 받아들이는 프로그램을 작성하는 것입니다. 물론 이는 이러한 프로그램이 다른 프로그램에서 입력으로 사용할 수 있는 출력을 생성해야 함을 의미합니다.

seq 명령은 파이프나 명령줄 확장을 통해 출력을 사용하는 다른 명령과 함께 사용될 때 자체적으로 나타납니다.

기본 목록 생성

단일 숫자를 명령줄 매개변수로 사용하여 seq를 시작하면 1부터 해당 숫자까지 계산됩니다. 그런 다음 아래와 같이 터미널 창에 한 줄에 하나씩 숫자를 인쇄합니다.

seq 6

그만큼

명령줄에 두 개의 숫자를 입력하면 아래와 같이 첫 번째는 시작 번호가 되고 두 번째는 끝 번호가 됩니다.

seq 4 10

세 번째 숫자를 포함하여 단계 크기를 설정할 수 있습니다. 시작 번호와 끝 번호 사이에 있습니다. 다음을 입력하여 seq에 6으로 시작하고 48에서 끝나고 6단계를 사용하는 숫자 목록을 생성하도록 요청합니다.

seq 6 6 48

거꾸로 세기

우리는 seq에게 가장 높은 숫자에서 가장 낮은 숫자의 목록을 생성하도록 요청할 수도 있습니다. 그러나 그렇게 하려면 음수 단계를 제공해야 합니다.

  Ubunsys로 Ubuntu 시스템 설정을 쉽게 변경하는 방법

다음 명령은 단계를 음수로 입력하기 때문에 6단계로 24에서 12까지 세는 목록을 생성합니다.

seq 24 -6 12

소수로 계산하기

시작, 종료 및 단계 번호도 소수일 수 있습니다. 숫자 중 하나라도 소수이면 나머지 숫자도 소수로 처리됩니다. 다음 명령은 0.2 단계의 숫자 목록을 생성합니다.

seq 1 0.2 2

시퀀스의 속도

seq는 엄청나게 빠릅니다. 유일한 병목 현상은 터미널 창에 명령을 입력하는 데 걸리는 시간입니다. 속도를 테스트하기 위해 250,000개의 숫자 목록을 요청해 보겠습니다.

우리는 다음을 사용하여 다음을 입력합니다. 시각 프로세스를 완료하는 데 걸리는 시간을 확인하는 명령:

time seq 250000

결과는 목록 아래에 표시됩니다. 중간 정도의 전력을 공급받는 테스트 PC에서도 seq는 놀라울 정도로 빠릅니다.

전체 목록이 생성되어 약 1/3초 만에 화면에 기록되었습니다. 목록을 파일로 리디렉션하면 터미널 창에 입력하는 오버헤드를 피할 수도 있습니다.

이렇게 하려면 다음을 입력합니다.

time seq 250000 > numbers.txt

터미널 창에서 time seq 250000 > numbers.txt.”  너비=”646″ 높이=”147″ onload=”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”  onerror=”this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”></p>
<p>목록을 완성하고 파일을 만드는 데 걸리는 시간은 이제 약 1/7초입니다.< /p> </p>
<h2 역할=구분 기호 사용

줄 바꿈 문자는 목록의 각 숫자 사이에 표시되는 기본 문자입니다. 그렇기 때문에 각 숫자가 한 줄에 있는 세로 목록으로 표시됩니다. 필요한 경우 다른 구분 기호를 제공할 수 있습니다.

예를 들어, 쉼표로 구분된 목록, 콜론으로 구분된 목록 또는 기타 구두점이나 기호를 만들어야 한다고 가정해 보겠습니다. 구분 기호는 실제로 문자열이므로 둘 이상의 문자를 사용할 수 있습니다.

-s(구분 기호) 옵션을 사용합니다. 다음 명령은 쉼표로 구분된 목록을 생성합니다.

seq s, 6 6 36

이 명령은 구분 기호로 콜론(:)을 사용합니다.

seq -s: 6 6 36

이 명령은 seq에 두 개의 하이픈(-)을 구분 기호로 사용하도록 지시합니다.

seq -s-- 6 6 36

형식 문자열 사용

seq 명령도 지원합니다. C 언어 스타일 형식 문자열. 이렇게 하면 구분 기호를 지정하는 것보다 훨씬 더 많은 제어로 출력 형식을 지정할 수 있습니다. 형식 문자열을 사용하려면 -f(형식) 옵션을 사용합니다.

  건강 앱에서 새 iPhone으로 활동 데이터를 전송하는 방법

다음 명령은 0을 사용하여 출력을 두 문자로 채우도록 seq에 지시합니다.

seq -f "%02g" 6

순차 -f

다음과 같이 원하는 텍스트로 문자열의 형식을 지정하고 문자열의 아무 곳에나 숫자를 배치할 수 있습니다.

seq -f "Number %02g in a C-like format string" 6

순차 -f

제로 패딩을 설정하는 빠른 방법

제로 패딩을 설정하는 가장 빠른 방법은 -w(동일 너비) 옵션을 사용하는 것입니다. 이것은 seq가 0을 사용하여 숫자를 채우도록 지시하므로 가장 큰 숫자와 너비가 모두 동일합니다.

다음 명령은 0에서 1,000까지 100단계로 계산하고 모든 숫자는 0으로 채워집니다.

seq -w 0 100 1000

가장 긴 숫자는 4자를 사용하므로 모든 좁은 숫자는 해당 너비에 대해 0으로 채워집니다(0일지라도 4개의 0으로 채워짐).

BC로 배관 시퀀스

구분 기호를 수학 기호로 설정하고 목록을 bc 명령에 연결하면 다음을 수행할 수 있습니다. 그 목록의 숫자를 평가하십시오.

다음 명령은 별표로 구분된 숫자 목록을 생성합니다.

seq -s* 6

1에서 시작하여 6으로 끝납니다.

seq -s* 6 | bc

해당 목록을 bc에 입력하면 별표를 사용하여 목록을 평가합니다.

seq -s+ 5

곱셈 기호로:

seq -s+ 5 | bc

다른 기호로도 이 작업을 수행할 수 있습니다. 아래 명령은 더하기 기호(+)를 사용하여 모든 숫자가 추가된 목록을 만듭니다.

이를 bc로 파이프하고 목록을 평가하기 위해 다음을 입력합니다. seq로 파일 생성하기 터치 명령

업데이트 시간 및 날짜 스탬프

touch $(seq -f "file-%g.txt" 1 10)

파일에. 파일이 존재하지 않으면 터치가 파일을 생성합니다. touch 및 seq와 함께 명령줄 확장을 사용하여 주제별로 이름이 지정되었지만 번호가 다른 파일 모음을 만들 수 있습니다.

ls file*

동일한 기본 이름과 다른 번호(file-1.txt, file-2.txt 등)를 가진 10개의 파일 세트를 생성합니다.  다음을 입력합니다.

그런 다음 다음을 입력하여 파일을 확인합니다.

터치 $(seq -f

Bash 루프에서 seq 사용

#!/bin/bash

  for val in $(seq 5 0.2 6.6); do

  echo "The value is now: $val"

done

Bash 스크립트에서 seq를 사용하여 소수가 있는 루프를 제어할 수 있습니다.

chmod +x loop.sh

다음 텍스트를 편집기에 입력하고 “loops.sh”로 저장합니다.

./loop.sh

다음으로 다음을 입력하여 새 스크립트를 실행 가능하게 만듭니다.

  PC를 자동으로 수정하는 방법은 BIOS로 이동합니다.

스크립트를 실행하면 루프 카운터가 터미널 창에 인쇄됩니다. 그런 다음 다음을 입력하여 루프가 반복될 때마다 10진수 루프 카운터가 증가하는 것을 확인할 수 있습니다.

seq도 거꾸로 셀 수 있음을 기억하십시오. 같은 방식으로 루프에서 사용할 수 있습니다. 멋지고 단순한 seq에 대한 한 가지는 학습 곡선이 많지 않다는 것입니다. 그것은 가지고있다

상쾌하게 짧은

매뉴얼 페이지에 있지만 여전히 흥미로운 방식으로 사용할 수 있습니다.

실제 크기로 테스트 파일을 빠르게 생성해야 하는 경우가 많기 때문에 형식 문자열과 함께 seq를 사용합니다. 그런 다음 출력을 리디렉션하여 원하는 만큼의 더미 데이터 줄을 포함하는 파일을 만듭니다.