使用 awk 查找文件的所需属性
Posted
技术标签:
【中文标题】使用 awk 查找文件的所需属性【英文标题】:Find desired attributes of a file using awk 【发布时间】:2022-01-21 12:31:10 【问题描述】:如果我正在寻找文件的某些属性,例如"r-x" 对于用户,像 '^-r.x' 这样的正则表达式就可以完成这项工作。但是,如果我必须显示用户和其他人对“写入”属性具有相同权限的文件怎么办?好的,我想将 stat 命令的结果传递给 awk:
stat --format="%a %n" filename (permissions in octal + name)
然后使用脚本:
others=$1 % 10;
group = ($1 % 100 - others)/10;
owner = int($1 / 100);
获取每个人的权限,然后
switch (owner)
case 7:
case 6:
case 3:
case 2:
if (other!=1 || other !=4 || other!=5)
print $2;
case 1:
case 4:
case 5:
我想一定有更简单的方法,不过......
【问题讨论】:
请看editing-help。 【参考方案1】:我宁愿去find
:
find -type f -perm -u+w,o+w -o \( ! -perm -u+w -a ! -perm -o+w \)
将从以下位置找到文件 b
和 c
:
$ls -l
-rw-r--r-- 1 john john 0 Dez 19 16:13 a
-r--r--r-- 1 john john 0 Dez 19 16:13 b
-rw-r--rw- 1 john john 0 Dez 19 16:13 c
但要小心逻辑:看似简单
\( ! -perm -u+w,o+w \)
对于用户和其他人没有写入权限的匹配文件将匹配a
AND b
。
【讨论】:
以上是关于使用 awk 查找文件的所需属性的主要内容,如果未能解决你的问题,请参考以下文章
从不同文件中查找相关文本并使用 sed 或 awk 或 grep 进行更新