我尝试grep
来自文件的html
两行cat
图案并使用<link type="text/css" rel="stylesheet" href="https://test.mydomain.com/store.css">
进行打印。这些行是:
<script type="text/javascript" language="javascript" src="https://test.mydomain.com/store/gwt.nocache.js">
和
grep
如果我使用if grep -F -i -n '<link type="text/css" rel="stylesheet" href="https://test.mydomain.com/store.css">' tmp.html > out.txt; then cat out.txt # IT WORKS.
命令单独使用它们。像
grep
但我需要egrep
两种模式。我试过egrep '(pattern1|pattern2)'
。如
if egrep -e -i -c '(\<link type\=\"text\/css\" rel\=\"stylesheet\" href\=\"https\:\//test\.mydomain\.com\/gwtstore\/store\.css\"\>|\<link type\=\"text\/css\" rel\=\"stylesheet\" href\=\"https\:\//test\.mydomain\.com\/store\/gwt\.nocache\.js\"\>)' tmp.html > out.txt; then cat out.txt
作为
sed
但上面的语法不能解决..请协助。所有我试图在文件中搜索两组html代码,如果它们使用{{1}}命令退出替换为另一种模式。
答案 0 :(得分:0)
像这样使用fgrep和-e选项
fgrep -e 'firts_pattern' -e 'second_pattern'
答案 1 :(得分:0)
如果您打算使用sed,您可能只想使用以下内容。您可能不需要两个单独的命令。使用sed,您可以找到两种模式是否存在,如果存在,则用一个命令替换它们。
注意:以下内容包含内联编辑。请在测试之前备份您的文件
sed -i 's/<link type="text\/css" rel="stylesheet" href="https:\/\/test.mydomain.com\/store.css">/<REPLACE PATTERN 1>/g;s/<script type="text\/javascript" language="javascript" src="https:\/\/test.mydomain.com\/store\/gwt.nocache.js">/<REPLACE PATTERN 2>/g' /yourfile
如果您是OS X用户,可以尝试以下
注意:以下内容包含内联编辑。请在测试之前备份您的文件
sed -i '' 's/<link type="text\/css" rel="stylesheet" href="https:\/\/test.mydomain.com\/store.css">/<REPLACE PATTERN 1>/g;s/<script type="text\/javascript" language="javascript" src="https:\/\/test.mydomain.com\/store\/gwt.nocache.js">/<REPLACE PATTERN 2>/g' /yourfile
如果您打算使用它们,请记住转义REPLACE PATTERN中的'/'字符。
你也可以试试awk。在这种情况下,它的功能很像grep。
awk '/<link type="text\/css" rel="stylesheet" href="https:\/\/test.mydomain.com\/store.css">/; /<script type="text\/javascript" language="javascript" src="https:\/\/test.mydomain.com\/store\/gwt.nocache.js">/' /yourfile
答案 2 :(得分:0)
使用egrep你不需要那些括号,只需要用单引号分隔模式的管道。
egrep -n 'pattern1|pattern2'
应该可以正常工作。