sed 使用中にエラーが発生しました。

sed 使用中にエラーが発生しました。

UNIXで次のコマンドを作成しようとしています。

ls -l | sed 'p/^.rwx'

ただし、次のエラーが発生します。

sed: -e expression #1, char 2: extra characters after command

ユーザーにフルアクセス権を持つファイル/ディレクトリを印刷しようとしています(rwx)。

ベストアンサー1

rintコマンドはp最後に表示され、デフォルトで印刷を無効にします。

ls -l | sed -n '/^.rwx/p'

このコマンドを使用するシステムを使用している場合は、stat問題を解決する別の方法があります。

for f in *
do
  stat -c "%a" "$f" | grep -q ^7 && printf "%s\n" "$f"
done

依存出力は、ls誰かが次のファイルを作成したことを考慮すると危険です。

touch $'foo\n-rwx some file'

ls...正規表現と(間違って)一致する出力に単一行が生成されます。この問題はshell glob()を使用して*回避できます。

別の方法は、次のものを使用することですfind

find . ! -name . -prune -perm -700 -ls

おすすめ記事