Shell 如何筛选以前的冗余条件
这是我练习sed的示例test.txt 这是我的问题 我怎样才能找到bash shell的红色框架 我只能在下面打字 如何修改以过滤冗余“vh1”Shell 如何筛选以前的冗余条件,shell,sed,Shell,Sed,这是我练习sed的示例test.txt 这是我的问题 我怎样才能找到bash shell的红色框架 我只能在下面打字 如何修改以过滤冗余“vh1” BillyLiu:Test billyliou$ sed -n '/vh1/,/vh2/p' test.txt BillyLiu:Test billyliou$ cat test.txt vh1 --- vh1 --- vh1 vh1 vh1 vh1 asdsd sdsdsds dsdskjskflkd sdsfsmdfk vh2 ----
BillyLiu:Test billyliou$ sed -n '/vh1/,/vh2/p' test.txt
BillyLiu:Test billyliou$ cat test.txt
vh1
---
vh1
---
vh1
vh1
vh1
vh1
asdsd
sdsdsds
dsdskjskflkd
sdsfsmdfk
vh2
----
don't want to be found
----
vh1
asdjskldjkalsjd
skdjksjkjk
xijcviorm,nre
vh2
也许吧
sed-En'H${g;s/(*)vh1.*vh2/\1/;p;}'test.txt
将整个文件读入保留空间。在
s//
模式中,前导的*
是贪婪的,因此这将匹配文件中最后一个“vh1…vh2”
等价的perl
perl-0777-pe's/(*)vh1.+vh2/$1/s'test.txt
需要s
标志,以便点匹配换行符。这可能适用于您(GNU-sed):
将所有行追加到保留空间
如果线路包含vh1
,则重置保持空间
如果一行包含
vh2
,请将其替换为保留空间,如果该行也包含vh1
,请打印保留空间。您能告诉我们您尝试了什么吗?我们要求你自己努力解决问题。我只想显示“红框”,但在这种情况下,它也会显示其他vh1。。。。。这是我的问题
sed -n 'H;/vh1/h;/vh2/{g;/vh1/p}' file