Linux 명령 지침

Linux 명령 지침

ls -l | grep -v '^d' | sort -g -r -k 5 | head -2:이 명령을 사용하여 텍스트 파일에 씁니다.

온라인에서 몇 가지 조사를 했는데 이 명령의 의미는 다음과 같습니다.

  1. grep:문자열에서 특정 패턴을 검색합니다.

  2. -v: 일치하지 않는 모든 행을 찾아서 표시하도록 지시하는 grep 옵션

  3. '':작은 따옴표가 무엇인지 잘 모르겠습니다.

  4. ^d: 캐럿은 dgrep이 검색하는 패턴인 줄의 시작을 나타냅니다. 이것은 사용될 때 작동합니다 ls -l.

  5. sort텍스트 파일의 내용을 숫자순으로 정렬

  6. -g수치로 비교이것이 정확히 무엇을 의미하는지 잘 모르겠습니다

  7. -r비교 결과를 반전시킵니다.비교의 목적을 알면 더 이해가 될 것입니다.

  8. -k 5열쇠를 시동하다POS1-이것이 무엇을 의미하는지 잘 모르겠습니다. 텍스트 파일의 첫 번째 줄에 있는 5번째 문자에 무슨 일이 일어나고 있다는 의미입니까?

  9. head -2내 텍스트 파일의 처음 두 줄을 표시합니다.

내가 확실하지 않은 부분을 명확히 하는 데 누군가 도움을 줄 수 있나요?

답변1

기술적인 세부 사항은 대부분 알고 있지만 전체적인 의미는 놓치고 있는 것 같습니다.

작은따옴표는 '^d'파이프를 실행하는 쉘이 정규식(예: '^d')의 문자를 "특수"로 처리하는 것을 방지합니다. 예를 들어 $"줄 끝"을 나타내는 정규식입니다. 쉘은 또한 $다음 토큰을 문자열에 값이 삽입될 쉘 변수로 표시하는 데 사용됩니다. 예 , 왼쪽의 stdout을 오른쪽의 stdin으로 파이프하는 것에 ^대한 오래된 동의어 입니다. |작은따옴표는 ^특별히 처리되지 않습니다.

의미론은 ls -l디렉토리로 표시된 출력 라인을 전달하지 않는 것입니다. ls -l디렉토리와 관련된 행의 첫 번째 문자로 "d"를 사용하십시오.

옵션을 사용 -g하면 sort명령이 키 필드에서 숫자 표현을 찾고 문자열이 아닌 숫자 값을 기준으로 정렬합니다. 기본 정렬 순서는 가장 작은 것에서 가장 큰 것 순이므로 이 -r옵션을 사용하면 가장 큰 것부터 가장 작은 것 순으로 정렬됩니다. -k 5필드 #5를 키 필드로 사용함을 나타냅니다 . sort기본적으로 공백 문자(공백, 탭 등)는 텍스트 줄을 "필드"로 나누는 데 사용됩니다. 내 Arch Linux 시스템에서 공백으로 구분된 다섯 번째 필드는 ls -l파일 크기(바이트)입니다.

여기서 의미는 파일을 크기(바이트 단위)별로 가장 큰 것부터 정렬하는 것입니다.

파일(디렉터리 아님)을 바이트 크기별로 정렬하고 가장 큰 두 파일의 정보를 텍스트 파일에 넣습니다.

편집 관점에서 볼 때 의 출력을 구문 분석하는 것은 일반적으로 잘못된 형식으로 간주됩니다 ls. 바라보다ls(1)의 출력을 분석하면 안되는 이유. 역사적으로, ls서로 다른 시스템에서 서로 다른 형식을 사용하면 파일 크기가 필드 5인 스크립트는 다른 시스템에서 이해할 수 없습니다. 그러니 조심해.

답변2

작은따옴표 ''는 문자의 시작과 끝을 나타내는 데 사용됩니다.

-g 플래그는 일반 숫자 값을 기반으로 정렬 비교를 수행합니다.

-r 옵션은 정렬의 기본 출력이 가장 낮은 것부터 가장 높은 것 순으로 출력을 가장 높은 것에서 가장 낮은 것으로 정렬합니다.

텍스트 파일 줄에서 열이나 단어 위치를 정렬하려면 -k 옵션을 사용하세요.

관련 정보