Como imprimir apenas certos caracteres?

0

Eu tenho que traduzir as permissões de um arquivo desta forma:

r ► c 
w ► s 
x ► e

Em seguida, devo extrair o grupo de caracteres relacionados ao grupo de proprietários. O último passo é imprimir esse grupo de caracteres sem "-" (apenas letras).

Eu consegui escrever um comando até agora:

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 $

Para a frente, eu tenho que adicionar outro '|' para imprimir apenas a letra (sem os caracteres '-').

    
por laurentiupiciu 24.11.2014 / 21:12

3 respostas

3

Eu acho que você quer este comando:

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

Você pode remover o comando extra ( cut -d ' ' -f 1 ) e substituí-lo pelo seu último comando de corte ( cut -c5-7 ) e também adicionar sed 's/-//' no final para remover todos os - s. Agora você está feito. você não precisou adicionar | extra.

E ainda melhor: você também pode alterar o traço (caractere - com caractere Nulo ( - ) da seguinte forma):

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

Substituído %code% char com caractere nulo ( %code% ).

    
por 24.11.2014 / 21:47
2

Modo alternativo sem ls :

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

Outra alternativa (colocando dois comandos tr ):

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

    
por 25.11.2014 / 04:23