이 cut 명령 예에서 f 매개변수는 어떻게 작동합니까?

이 cut 명령 예에서 f 매개변수는 어떻게 작동합니까?

LPIC-1 시험을 준비하고 있는데 다음 명령어 컷 예시를 이해할 수 없습니다.

ifconfig enp3s0f2다음과 같은 결과가 생성됩니다.

enp3s0f2: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 00:90:f5:e5:e4:7c  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ifconfig enp3s0f2 | grep ether | cut -d " " -f 10그런 다음 MAC 주소를 분리하기 위해 이 출력을 표시하는 명령을 실행합니다 .00:90:f5:e5:e4:7c

하지만 저는 -f값이 10인 매개변수만 사용했습니다. 왜 다른 숫자가 아니고 10인지 이해가 안 됩니다. 다양한 매개변수와 함께 cut 명령을 사용하는 방법에 대한 여러 페이지의 예제를 살펴봤지만 이 예제에서는 전혀 이해가 되지 않습니다.

이 MAC 주소를 분리하는 방법은 -f에 할당된 값 10이어야 합니까?

답변1

이는 앞에 8개의 공백이 오는 구분 기호를 사용했기 때문입니다.ether

아래 코드를 사용하여 이를 확인할 수 있습니다.

 ifconfig enp3s0f2 | grep ether | sed 's/ether.*//' |grep -o ' ' | wc -l 

 8

따라서 9번째 필드는 이고 ether, 10번째 필드는00:90:f5:e5:e4:7c

답변2

에서 man cut:

   -d, --delimiter=DELIM
          use DELIM instead of TAB for field delimiter

   -f, --fields=LIST
          select only these fields;  also print any line that contains no delimiter character, unless the -s option is specified

따라서 각 구분 문자(귀하의 경우 공백)로 출력을 분할합니다. 그러면 필드 배열이 생성됩니다. 이 -f옵션은 cut에게 10번째 필드만 반환하도록 지시합니다.

관련 정보