在 Mac 终端中搜索和编辑文本文档并分配给变量

在 Mac 终端中搜索和编辑文本文档并分配给变量

那么,如果我将 system_profile 保存到文本文档中,我该如何删除除一个部分之外的所有内容?或者删除它周围的引号?那么我该如何将某些文本分配给变量以检查某些内容?

示例:如果我将 system_profile 保存到文本文档,我将如何搜索以查找我有多少 RAM,并将其分配给变量“ram”?此外,我可以让它搜索并删除某些字符吗?例如,让脚本删除所有引号?

答案1

您可以使用 grep 在文件中搜索单词。

例子:

cat system_profile | grep ram

这将返回 system_profile 中包含模式“ram”的行。您可能需要运行该命令并查看返回结果,然后才能了解下一步该做什么。如果您想要的只是文件的一部分,您可以执行搜索并将输出重定向到新文件。

例子:

cat system_profile | grep ram -A 5 > system_ram

这将为您提供包含“ram”的行以及其后的五行。

您可以通过实用程序 sed 替换字符。

例子:

sed -i 's/old/new/g' system_profile

消除双引号(“):

sed -i 's/"//g' system_profile

答案2

我不完全确定如何在不同事件之间进行选择,但希望这会有所帮助。

x=$(cat system_profile | grep ram -A 5)

上述代码将保存包含 ram 的行以及其后的 5 行。若要获取之前的行,请使用-a而不是-A

我猜想grep支持选择有限数量的行(即在第一次出现后停止ram)。如果这是您要查找的内容,请使用-m 1grep 的(其中 1 是停止前要查找的出现次数)选项。

或者,如果选中的两行(或更多行)不相同,您可以修改 grep 搜索。只需更改ram为您需要匹配的内容(如果超过一个单词,请将其放在引号中)

相关内容