웹사이트 검색

초보자를 위한 Linux shuf 명령 자습서(예제 포함)


이 페이지에서

  1. Linux shuf 명령
  2. Q1. shuf 명령을 사용하는 방법?\n
  3. Q2. 출력 라인 수를 제한하는 방법은 무엇입니까?\n
  4. Q3. 출력에서 줄 반복을 허용하는 방법은 무엇인가요?\n
  5. Q4. shuf가 입력 인수를 라인으로 처리하게 하는 방법은 무엇입니까?\n
  6. 결론

카드 게임을 해본 적이 있다면 셔플링이라는 용어를 알고 있을 것입니다. 상상하기 조금 어렵지만 파일의 라인으로 정확하게 수행하는 Linux 명령줄 도구가 있습니다. 이 자습서에서는 이해하기 쉬운 몇 가지 예를 사용하여 shuf 명령의 기본 사항에 대해 설명합니다.

하지만 그 전에 여기에 있는 모든 예제가 Ubuntu 18.04 LTS 시스템에서 테스트되었음을 언급할 가치가 있습니다.

리눅스 shuf 명령

Linux의 shuf 명령을 사용하면 임의 순열을 생성할 수 있습니다. 구문은 다음과 같습니다.

shuf [OPTION]... [FILE]

도구 매뉴얼 페이지에서 설명하는 방법은 다음과 같습니다.

Write a random permutation of the input lines to standard output.

다음은 shuf 명령의 작동 방식에 대한 더 나은 아이디어를 제공하는 몇 가지 Q&A 스타일 예제입니다.

Q1. shuf 명령을 사용하는 방법?

기본적인 사용법은 매우 간단합니다. 파일 이름을 입력으로 전달하십시오. 예를 들면 다음과 같습니다.

shuf test.txt

이제 test.txt 파일에는 다음 줄이 포함됩니다.

1
2
3
4
5
6
7
8
9

그러나 위의 shuf 명령은 다음과 같은 결과를 생성했습니다.

3
4
6
5
1
8
2
7
9

따라서 줄이 섞인 것을 볼 수 있습니다.

Q2. 출력 라인 수를 제한하는 방법은 무엇입니까?

shuf 출력의 줄 수를 제한하려면 -n 명령줄 옵션을 사용하십시오. 이 옵션은 출력에 원하는 최대 줄 수를 나타내는 숫자를 전달해야 합니다.

예를 들어:

shuf -n 3 test.txt

위의 명령은 다음과 같은 출력을 생성했습니다.

6
4
9

Q3. 출력에서 줄 반복을 허용하는 방법은 무엇인가요?

입력 파일에 9개의 줄이 포함되어 있지만 shuf가 출력보다 더 많은 줄을 생성하기를 원한다고 가정합니다(위에서 설명한 -n 옵션 사용). 이것은 -r 옵션을 사용하여 수행할 수 있습니다.

-r, --repeat
              output lines can be repeated

따라서 shuf가 25줄의 출력을 생성하도록 하려면 다음 명령을 실행하십시오.

shuf -r -n 25 test.txt

이 명령이 생성한 출력은 다음과 같습니다.

6
8
4
5
9
3
3
1
2
5
7
5
9
5
8
5
2
8
8
7
4
4
8
5
3

Q4. shuf가 입력 인수를 라인으로 처리하게 하는 방법은 무엇입니까?

이를 위해 -e 명령줄 옵션을 사용합니다. 예를 들면 다음과 같습니다.

shuf -e 1 2 3 4 5 6 7 8 9

다음은 이 명령으로 생성된 출력입니다.

9
1
7
8
6
2
3
5
4

결론

동의합니다. shuf는 매일 필요한 종류의 도구는 아니지만 특히 학습 곡선이 그렇게 가파르지 않기 때문에 이 유틸리티에 대해 배우는 데 아무런 해가 없습니다. 여기에서 논의한 내용을 연습한 후에는 도구 설명서 페이지로 이동하여 자세한 내용을 알아보세요.