正規表現を使用して ls -l からアクセス許可を削除しようとしています。これが私が試みていることです:
ls -l | sed '/^.([rwx]{9}) //'
それは機能していませんが、その理由はわかりませんか?
このような状況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 番目のフィールドから始まる各行を印刷します。
「カット」コマンドで試してください。
ls -l |cut -d ' ' -f2-
-d は、使用するフィールド区切り文字を指定します。ここは「スペース」です。-f の後の 2 は、2 番目の列から開始することを指定します。「-」は、行末までカットすることを示します。