linux - 我如何在 ls 命令后搜索特定字符串

标签 linux shell unix ubuntu

我正在尝试制作一个 shell 脚本来搜索/proc 目录并找到进程的用户。我该怎么做?我正在尝试使用 grep 的不同方式,例如

NUM=`egrep -ri  "$a1" /proc/ 2> error.txt ` 
echo "$NUM"

但没有任何反应。有人可以帮忙吗?

最佳答案

grep 搜索文件的内容。要搜索某人 拥有的文件,请尝试类似

find /proc -user someone -ls

通常,您可以通过过滤器通过管道传输 ls 以仅获取第三个字段为 someone 的那些行,如评论中所暗示的那样;

ls -l | awk '$3=="someone"'

...但出于多种原因,您应该 avoid parsing ls output一般而言。

如果你知道数字用户 ID,你可以做类似的事情

awk '$1=="Uid" && $2==1234 { print FILENAME }' /proc[1-9]*/status

获取 UID 号 1234 拥有的进程的文件名。可以通过 find 获取与第一个示例非常相似的内容。 (也许只搜索数字目录名称?)

关于linux - 我如何在 ls 命令后搜索特定字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23446715/

相关文章:

c++ - 在匹配的内容上丢弃嗅探数据包

shell - 如何创建多语言 PDF?

linux - KornShell (ksh) 重定向

c - C 中 IF 语句被忽略

UNIX 有效密码

用于共享和关闭文件描述符的 linux 辅助数据

c++ - cmake target_compile_options 工作但 add_compile_options 没有

linux - 检测Linux中最大的分区

linux - 无法从嵌套子 shell 传递变量

c - 如何在调用系统后启用 ctrl-c/ctrl+break?