我正在尝试编写一个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
将只打印少于两个单词或以[
开头的单词的行