0

正規表現を使用して ls -l からアクセス許可を削除しようとしています。これが私が試みていることです:

ls -l | sed '/^.([rwx]{9}) //'

それは機能していませんが、その理由はわかりませんか?

4

3 に答える 3

2

このような状況cutでは、フィールド区切り文字を使用するのが好きです。

ls -l | cut -d ' ' -f2-

BASH のみのソリューションは常に優れています。

while read _ line; do echo $line; done < <(ls -l)

またawk

ls -l | awk '{print substr($0, index($0,$2))}'

またruby

ls -l | ruby -ane 'puts $F[1..$F.count].join(" ")'

Each は、2 番目のフィールドから始まる各行を印刷します。

于 2013-10-15T05:00:13.203 に答える
1

「カット」コマンドで試してください。

ls -l |cut -d ' ' -f2-

-d は、使用するフィールド区切り文字を指定します。ここは「スペース」です。-f の後の 2 は、2 番目の列から開始することを指定します。「-」は、行末までカットすることを示します。

于 2013-10-15T07:55:12.327 に答える