特定の文字だけを印刷する方法は?

特定の文字だけを印刷する方法は?

次のようにファイルの権限を変換する必要があります。

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つ追加する必要があります。

答え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を-NULL文字(\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

関連情報