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