Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash Sed删除包含多个单词的行,不包括搜索词_Bash_Unix_Sed - Fatal编程技术网

Bash Sed删除包含多个单词的行,不包括搜索词

Bash Sed删除包含多个单词的行,不包括搜索词,bash,unix,sed,Bash,Unix,Sed,我目前正在尝试编写一个sed命令来搜索文件,并删除文件中包含多个单词的行。但是,我需要它来排除删除以特定符号(以“[”)开头)开头的行 这是我到目前为止所拥有的(这不包括排除一行的代码,只是删除包含多个单词的行): 我想这样做,以排除以左括号(“[”)开头的搜索行: 但是,我遇到了以下错误: sed: -e expression #1, char 6: extra characters after command 我肯定我错过了一些小而可笑的东西。有人能帮忙吗?干杯。一个awk命令会更简单:

我目前正在尝试编写一个sed命令来搜索文件,并删除文件中包含多个单词的行。但是,我需要它来排除删除以特定符号(以“[”)开头)开头的行

这是我到目前为止所拥有的(这不包括排除一行的代码,只是删除包含多个单词的行):

我想这样做,以排除以左括号(“[”)开头的搜索行:

但是,我遇到了以下错误:

sed: -e expression #1, char 6: extra characters after command

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

一个
awk
命令会更简单:

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

sed -n '/^ *[^ ]\+ \+[^ ]\+\|^ *\[/p' file

我不确定您的命令是否正确,但以下命令可以解决此问题:

sed -E '/^\s*\S+\s*$|^\[/!d' $1
这可能适用于您(GNU-sed):


删除不以
[
开头且不止一个单词的行。

做得很好!一定要多看看awk。非常感谢!
sed -n '/^ *[^ ]\+ \+[^ ]\+\|^ *\[/p' file
sed -E '/^\s*\S+\s*$|^\[/!d' $1
sed '/^[^[]\S*\s\+\S/d' file