如何删除整个文件 bash 中某个字符后的所有字符

How to remove all characters after a certain character in bash for a whole file

我发现了几个这样的问题,但他们没有谈论使用整个文件。

我有一个来自旧 OS 的软件包文件,但我将其恢复出厂设置并希望确保所有这些软件包都已安装。

查看文件here

但是我不需要 / 之后的所有额外信息,我只需要包的名称,这样我就可以 sudo apt installcat packages.formatted`。

如何使用 grep.

等工具删除它

例子

nautilus/oldstable,now 3.14.1-2 armhf [installed]
minecraft-pi/stable,now 0.1.1-4 armhf [installed]

变成

nautilus
minecraft-pi

注意:如果你能找到一个更好的方法让我安装所有这些包,你也可以这样回答,但这不是这个问题的重点

您可以为此使用 awk(或 cut)。本质上使用该字符分隔文件并仅返回第一个字段:

awk -F"/" '{print }' yourfile > outputfile

这也可以用管道代替:

awk -F"/" '{print }' packages.txt | sudo apt install

假设 apt 可以像那样从标准输入读取。