I tried KDE Plasma on my Ubuntu machine last weekend. After using it for a while, I decided that it is too complicated for me and I'd like to remove them from my machine.
To remove installed packages in Ubuntu is simple.
$ sudo apt remove package-name-1 package-name-2
But, there are a lot of packages installed automatically when you install KDE Plasma. Removing them one by one is definitely, well, inefficient. So, the challenge here is to get a list of installed KDE packages in proper format, so you can feed them into the command above.
Here's how I solve it in an efficient way.
apt
as the interface for the package management system in Ubuntu provides a way for you to list installed packages. Here's one way to list installed packages which name contains kde
.
$ apt list --installed | grep kde
.
.
debconf-kde-helper/disco 1.0.3-1 amd64 [installed,automatic]
kde-style-breeze/disco 4:5.15.4.1-0ubuntu1 [installed,automatic]
.
.
The output is not something we can feed into apt remove
command directly, so we need to sanitize it quite a bit.
It's obvious that the package name is anything before /
. We can use the cut
command to do just that.
$ apt list --installed | grep kde | cut -d "/" -f 1
.
.
debconf-kde-helper
kde-style-breeze
.
.
Next, since each packages are listed in a new line, we still can't pass this output directly to the apt remove
command. Let's replace the new line with space using tr
command.
$ apt list --installed | grep kde | cut -d "/" -f 1 | tr '\n' ' '
.
.
debconf-kde-helper kde-style-breeze
.
.
Now, the output of installed KDE packages are now in proper format. We can now feed the output directly to apt remove
command using xargs
.
$ apt list --installed | grep kde | cut -d "/" -f 1 | tr '\n' ' ' | xargs sudo apt remove
It's amazing how these four simple tools: grep
, cut
, tr
, and xargs
, can help you automate and achieve your goal; saving you from the manual and repetitive labor.
How might you do it differently?
Top comments (1)
You can collapse your two commands:
Into one command:
Note: I set
awk
's search to the slightly longer-kde-
(from yourgrep
'skde
) for more-precise targeting.Similarly, if you really need your
tr
capability, you can subsume its use by switching upawk
's outputer toprintf
(and using appropriate formatting-specification).