在 UNIX 中的 sed 命令中使用否定

Dim*_*ski 3 unix sed

我是 shell 新手,几天前开始学习它,但遇到了一个问题。我想使用 sed 命令来过滤文件。首先,我想从列表中删除所有不包含单词 zad 的文件所以我这样做:

ls | sed '/[^{zad}]/d'
Run Code Online (Sandbox Code Playgroud)

我不明白为什么这会从列表中删除所有文件?它会删除名称中不包含 z、a 或 d 的所有文件吗?

pot*_*ong 8

这可能对你有用(GNU sed):

sed '/zad/!d' file
Run Code Online (Sandbox Code Playgroud)

或者:

sed -n '/zad/p' file
Run Code Online (Sandbox Code Playgroud)