出力の最初のフィールドに指定された数値より大きい行をgrepしようとしています。この例では、その番号は755
です。最終的に、私がやっていることは、stat -c '%a %n' *
を使って755
より大きい(そして等しくない)特権を持つすべてのファイルをリストアップしようとしていて、この最終的なリストを得るためにgrep'ing(あるいはsed'ing?これがどのようにして最高の成果を収めることができるのか?与えられた数字より大きい数字のグレープ・ライン
答えて
この試してください:あなたは自分の最終的な出力にファイル名をしたい場合は、特権番号をスキップし、
stat -c '%a %n' *|awk '$1>755'
をできます
stat -c '%a %n' *|awk '$1>755{print $2}'
EDIT
実際にあなたが可能性awk内でchmod
を実行してください。ユーザーがawk行を実行する際に、それらのファイルを変更する権限があることを確認する必要があります。
stat -c '%a %n' *|awk '$1>755{system("chmod 755 "$2)}'
ここでも、ファイル名にスペースがないものとします。
あの小さなアドオンをありがとう。私はフィールド2を切り抜けるつもりでしたが、あなたのパイプは1つ少ないパイプで実現します! – user2150250
ファイル名にスペースがないように注意してください。 –
@ user2150250注:私の2番目のawk one-linerは、ファイル名にスペースがないことを前提としています。 – Kent
私はawk(1)
を使用したい:
stat -c '%a %n' * | awk '$1 > 755'
awk
パターンが最初のフィールドは、行または別の何かのサブセットを印刷したい場合は、アクションを追加することができます755次に大きいの線と一致し、 (@ Kentの答えを参照)。
どちらもgrep
でもsed
でも演算には適していません。 awk
が助けになることがあります(残念ながら私はそれを知らない)。しかしfind
は、あまりにも、ここでは便利なことができることに注意してください:
-perm mode
File's permission bits are exactly mode (octal or symbolic).
Since an exact match is required, if you want to use this form
for symbolic modes, you may have to specify a rather complex
mode string. For example -perm g=w will only match files which
have mode 0020 (that is, ones for which group write permission
is the only permission set). It is more likely that you will
want to use the `/' or `-' forms, for example -perm -g=w, which
matches any file with group write permission. See the EXAMPLES
section for some illustrative examples.
-perm -mode
All of the permission bits mode are set for the file. Symbolic
modes are accepted in this form, and this is usually the way in
which would want to use them. You must specify `u', `g' or `o'
if you use a symbolic mode. See the EXAMPLES section for some
illustrative examples.
-perm /mode
Any of the permission bits mode are set for the file. Symbolic
modes are accepted in this form. You must specify `u', `g' or
`o' if you use a symbolic mode. See the EXAMPLES section for
some illustrative examples. If no permission bits in mode are
set, this test matches any file (the idea here is to be consis‐
tent with the behaviour of -perm -000).
だからあなたのために働くことができるものです:あなたはファイル名のみが必要な場合
find . -perm -755 -printf '%m %p\n'
ちょうど
-printf
一部を除去。
- 1. 与えられた整数よりも小さい最大の興味深い数字を見つけよう
- 2. 与えられた文字列中の各文字の数
- 3. 与えられた数字まで連続した数字の合計
- 4. 単一の数字が与えられた他の数字を見つける
- 5. 与えられた数字の集合に数字を分割する
- 6. 数字より大きいPythonリスト
- 7. 与えられた範囲内の繰り返し数字を持つカウント数
- 8. 与えられた文字列の要素の数を数えます。
- 9. 与えられた範囲の数字のループとパリドーム
- 10. 与えられた範囲内の数字のシーケンスを作る
- 11. 与えられた文字列中の母音数を数える
- 12. 与えられた文字数の行を表示する
- 13. 与えられた数字の一意の数を計算するExcel関数
- 14. 与えられた文字列に整数値だけを加えたい
- 15. 与えられた文字列の正確な数字を一致させる
- 16. 与えられた文字/数字で始まるベクトル内の要素
- 17. 与えられた数字で日付をつける
- 18. 与えられた数字に向かって丸めます
- 19. 2桁の数字がVBAの3桁の数字より大きい問題
- 20. Java与えられた数字の正の約数を見つける方法
- 21. TCPDF/PHP&フォント:大文字の数字(ディセント番号旧スタイル?)私はそのように数字と特殊なフォントを与えられてい
- 22. 大きい数字のmodf()
- 23. は、与えられた数
- 24. python:与えられた文字列からのランダムな文字
- 25. 常にrand()によって与えられた数字を返します
- 26. データが与えられた文字列
- 27. Java与えられた文字列のxを再帰的に数える
- 28. 与えられた数字から数値書式とロケール文字列を取得するには?
- 29. 与えられた文字列から与えられた文字列をPHPを使って数える方法
- 30. 与えられた2つの数字の間にあるすべての数字を出力します。
'755'は実際にはビットのシーケンスを表す8進数なので、「より大きい」とはどういう意味ですか? '666'は全員に書き込みアクセス権を与えます。それは "755"よりも大きいのですか? '755'は' '666'よりも大きいですか? –
OS Xのユーザ: 'stat -c '%a%n' *'(Linux)に相当するのは 'stat -f '%Lp%N' *' ' – mklement0
です。 awk? – Soncire