有人可以帮我找到这 3 个命令吗?

有人可以帮我找到这 3 个命令吗?

我只提出一个问题以避免垃圾邮件。我有 3 种情况不知道应该使用哪些命令。它们是:

  1. 列出所有具有至少其名称有 3 个字母。

  2. 计算有多少个文件具有“所有者的写入权限”。

  3. 我有一个BD.txt包含以下内容的文件(例如):

Mary:Boston:20
John:New York:18
Paul:New York:25
Andrew:New Paris:30

我需要显示有多少人居住在纽约。通常,我使用:

cat BD.txt | grep **place_name** | wc -l

但这只在我想查找单个单词时才有效。如果我输入“New York”,该命令将计算所有包含名称“New”的行,而忽略其余行(由于空格字符)。

在这些情况下我应该使用什么?

答案1

我会尽力帮你一点忙,但不会帮你做作业——

问题 1 - 列出文件:“?”字符表示 1 个(非空)通配符,而“*”字符表示 0 个或更多字符。

问题 2 - ls -l 将在行首显示每个文件的权限,cut 命令可用于选择一个字符或字符范围。对于 ls -l,如果第三个字符是“w”,则表示所有者具有写权限。

问题 3 - 您忽略了几个问题 - 当您按照预期的方式使用 grep 时,您不会使用“*”字符 - grep 正在寻找给定的子字符串。字符 ' 和 " 用于将字符串(包括空格字符)指定为单个参数。'\' 字符将使紧随其后的任何字符都按字面意思解释,而不是由 shell 扩展。(顺便说一下,这个答案至少给出了 3 个解决方案)

相关内容