我正在尝试编写一个sed命令,该命令将搜索一个文件,并删除文件中包含多个单词的行。但是,我需要它排除删除以特定符号开头的行(以“[”开头)
这就是我目前所拥有的(这不包括排除一行的代码,只是删除包含多个单词的行):

sed -E '/^\s*\S+\s*$/!d' $1

我想用这样的方法排除以左括号(“[”)开头的搜索行:
sed -E '/a/!d/^\s*\S+\s*$/!d' $1

但是,我得到了这个错误:
sed: -e expression #1, char 6: extra characters after command

我肯定我错过了一些小而可笑的事情。有人能帮上忙吗?干杯。

最佳答案

awk命令将更简单:

awk 'NF<2 || /(^| )\[/' file

awk将只打印少于两个单词或以[开头的单词的行

09-10 01:15
查看更多