Bash vim和sed单行:否定搜索、多次搜索替换行、打开文件并在vim编辑器中高亮显示

Bash vim和sed单行:否定搜索、多次搜索替换行、打开文件并在vim编辑器中高亮显示,bash,vim,sed,Bash,Vim,Sed,下面是我想在一行中做的事情: 1在文件ak.txt中搜索与模式不匹配的行,将每行替换为\\\\124;: $ sed -n '/.*[0-9][0-9]\.[0-9][0-9]\.[0-9][0-9][0-9]$/!s:.*:\\\<&\\\>\\\|:p' ak.txt 我想我们得到了我想要得到的,我们如何通过VIM和SED告诉BASH?如果必须在一行中完成,那么: sed -n '/.*[0-9][0-9]\.[0-9][0-9]\.[0-9][0-9][0-9]*$/

下面是我想在一行中做的事情:
1在文件ak.txt中搜索与模式不匹配的行,将每行替换为
\\\\124;

$ sed -n '/.*[0-9][0-9]\.[0-9][0-9]\.[0-9][0-9][0-9]$/!s:.*:\\\<&\\\>\\\|:p' ak.txt

我想我们得到了我想要得到的,我们如何通过VIM和SED告诉BASH?

如果必须在一行中完成,那么:

sed -n '/.*[0-9][0-9]\.[0-9][0-9]\.[0-9][0-9][0-9]*$/!{ s:.*:\\\<&\\\>\\\|:; $s/\\|$//; p; }' ak.txt

第一行就是您原来的命令;第二个简单地删除最后一行末尾的
\\\\

在双引号字符串中有一个感叹号,bash不喜欢它。将其替换为
“'!”
@minitech发现一个sed异常:
sed:-e expression#1,char 45:未知命令:
“'`
$ vim -c "/`sed -n '/.*[0-9][0-9]\.[0-9][0-9]\.[0-9][0-9][0-9]$/!s:.*:\\\<&\\\>\\\|:p' ak.txt`" -c 'set hls' ak.txt
bash: .: unrecognized history modifier
sed -n '/.*[0-9][0-9]\.[0-9][0-9]\.[0-9][0-9][0-9]*$/!{ s:.*:\\\<&\\\>\\\|:; $s/\\|$//; p; }' ak.txt
sed -n '/.*[0-9][0-9]\.[0-9][0-9]\.[0-9]\{3\}*$/!{ s:.*:\\\<&\\\>\\\|:; $s/\\|$//; p; }' ak.txt
sed -n '/.*[0-9][0-9]\.[0-9][0-9]\.[0-9][0-9][0-9]$/!s:.*:\\\<&\\\>\\\|:p' ak.txt |
sed '$s/\\|$//'