특정 문자만 인쇄하는 방법은 무엇입니까?

특정 문자만 인쇄하는 방법은 무엇입니까?

다음과 같이 파일의 권한을 변환해야 합니다.

r ► c
w ► s
x ► 전자

그런 다음 소유자 그룹과 관련된 문자 그룹을 추출해야 합니다. 마지막 단계는 "-" 없이 문자 세트를 인쇄하는 것입니다(문자만).

지금까지 나는 다음 명령을 작성했습니다.

student@vm-uso ~team2 $ ls -l partition
-rw-r--r-- 1 student student 10485760 nov 24 21:04 partition
student@vm-uso ~team2 $ ls -l partition | cut -d ' ' -f 1| tr rwx cse | cut -c5-7
c--
student@vm-uso ~team2 $

전달 시 문자("-" 문자 제외)만 인쇄하려면 "|"를 하나 더 추가해야 합니다.

답변1

내 생각엔 당신이 이 명령을 원하는 것 같아요:

ls -l partition | cut -c5-7 | tr rwx cse |sed 's/-//'

추가 명령( cut -d ' ' -f 1)을 제거하고 마지막 잘라내기 명령( cut -c5-7)으로 대체한 후 sed 's/-//'끝에 추가하여 모든 -명령을 제거할 수 있습니다. 이제 끝났습니다. 추가로 추가할 필요는 없습니다 |.

더 좋은 점은 대시( 아래 표시된 대로 -Null 문자( )가 있는 대시) 를 변경할 수도 있다는 것입니다 .\0

ls -l partition | cut -c5-7 | tr 'rwx-' 'cse\0'

char을 -널 문자( \0)로 바꾸십시오.

답변2

대안 없음 ls:

getfacl -c partition | sed -n '/group::/{s/.*:://;y/rwx/cse/;s/-//g;p;}'

답변3

다른 옵션(두 tr명령 모두 파이프):

ls -l partition | cut -c5-7 | tr -dc rwx | tr rwx cse

관련 정보