linux - 如何在 UNIX 中读取一个值

标签 linux ubuntu unix

我是 UNIX 的新手,不知道如何从文件中访问某个数字。以下是我输入 quota -v 时得到的结果。 alt text

我需要编写一个脚本来检查并确保我是否低于配额,如果没有则显示警告消息。因此,我想从该文件中访问“使用”数字和“限制”数字,并使用“if”语句进行比较。有人可以告诉我如何访问那个特定位置的数据吗? (例如:该文件的“使用”区域为 205539,“限制”区域为 200000)。任何帮助将不胜感激。

最佳答案

在 UNIX shell 中,通常使用执行非常小的任务的小工具,并将它们组合起来组装 anwser。基本系统为您提供了多种工具,可以对文本执行各种基本操作。 例如,您可以像这样运行配额:

quota | grep undergrad1

这将运行配额,并将其输出传递给 grep,后者的工作是返回包含其参数的行。这将只返回 undergrad1 行。 然后你可以将该行提供给工具,这些工具会将其分解成列。执行此操作的主要工具称为剪切。 Cut 采用分隔符和字段规范 - 或者,字符计数。 在您的情况下,您可能希望在将 grep 的输出传递给 cut 之前对其进行清洗,以免依赖于字符数。如果 quota 使用制表符来分隔列,那么您可以将其按原样进行切割:

quota | grep undergrad1 | cut -d "\t" -f 3

...但是如果它使用可变数量的空格,那么您可能希望首先使用 tr 及其 -s 选项将它们折叠成一个:

quota | grep undergrad1 | tr -s " " | cut -d " " -f 3

请注意,我们现在要求 cut 使用空格而不是制表符作为分隔符。

有了这个,您应该能够组装一个脚本来执行您想要的操作。更进一步,如果您希望在名称相同但顺序不同或任何适合范围的系统上运行,您可以在第一行 grep "Filesystem"并尝试在返回它们之前找出列索引你的脚本。

关于linux - 如何在 UNIX 中读取一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3920947/

相关文章:

linux - 在分隔符处拆分文件

linux - 在 linux 中查找字符串并替换另一行

c - 如何在 C 中使用 pstree 显示子进程

Java Runtime exec 抛出没有这样的文件或权限被拒绝

linux - 任何人都可以向我解释/dev/tty 的目的是什么

c - I/O 的触发信号处理程序

python - Ubuntu 默认使用 Python3.5 而不是 Python3.6

ubuntu 服务器 vs 桌面版

c - 将 Unix 命令的输出存储在 C 代码中

c++ - 检查 CPP 程序中的输入重定向