我在php文件的大目錄上運行了內聯sed。其目的是將網址前綴http://
轉換爲協議相關網址//
,以便他們甚至可以使用https
鏈接。無意中我最終做了幾百個捲曲查詢,不幸的是那些不喜歡這些網址。 所以我試圖找到這些grep的模式//
。問題是評論也以//
開頭。我嘗試在管道中鏈接grep,以便可以排除註釋。grep正則表達式查詢
我試圖在行的開頭排除一個或多個空格,因爲我的大部分註釋似乎都是縮進的。但它不工作。
grep --color=always -inr '//' *php | grep -v '^\s+//'
我的理由是,第一匹配的grep與兩條斜線,註釋然後第二個不包括在其中的線開始於一個或多個空格的那些行。但它似乎並沒有像那樣工作。這裏有一個我得到的樣本:
tvsearch.php:3:// Resource for iteration of nested php arrays
tvsearch.php:4:// //stackoverflow.com/a/3684584/1305947
tvsearch.php:14:// define('__ROOT__', dirname(dirname(__FILE__)));
tvsearch.php:15:// require_once(__ROOT__.'/htdocs/config.php');
tvsearch.php:16:// require_once(__ROOT__.'/htdocs/sqlfunctions.php');
tvsearch.php:17:// GetCredentialsDB();
tvsearch.php:19: // <link href="/css/bootstrap.min.css" rel="stylesheet">
tvsearch.php:20: // <link href="https://code.jquery.com/ui/1.11.3/themes/smoothness/jquery-ui.css" rel="Stylesheet"></link>
tvsearch.php:21: // <script src="/js/bootstrap.js"></script>
tvsearch.php:22: // <script src="https://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
tvsearch.php:25:// <link href="/css/grid.css" rel="stylesheet">
tvsearch.php:26:// <link href="/css/cover.css?v=1" rel="stylesheet">
tvsearch.php:44: <!-- link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.5/css/bootstrap.min.css" integrity="sha384-AysaV+vQoT3kOAXZkl02PThvDr8HYKPZhNT5h/CXfBThSRXQ6jW5DO2ekP5ViFdi" crossorigin="anonymous"> -->
tvsearch.php:52: <!-- <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js" integrity="sha384-3ceskX3iaEnIogmQchP8opvBy3Mi7Ce34nWjpBIwVTHfGYWQS9jwHDVRnpKKHJg7" crossorigin="anonymous"></script> -->
tvsearch.php:53: <!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.3.7/js/tether.min.js" integrity="sha384-XTs3FgkjiBgo8qjEjBk0tGmf3wPrWtA6coPfQDfFEY8AnYJwjalXCiosYRBIBZX8" crossorigin="anonymous"></script> -->
tvsearch.php:56: <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.5/js/bootstrap.min.js" integrity="sha384-BLiI7JTZm+JWlgKa0M0kGRpJbF2J8q+qreVrKBC47e3K6BW78kGLrCkeRX6I9RoK" crossorigin="anonymous"></script>
tvsearch.php:100: <li><a href="//www.tv.com" target="_blank">TV.com</a></li>';
tvshowcarousel.php:54: <li><a href="//www.tv.com" target="_blank">TV.com</a></li>
tvtest.php:2:// Resource for iteration of nested php arrays
tvtest.php:3:// //stackoverflow.com/a/3684584/1305947
tvtest.php:11:// require_once "/tvmaze/TVMazeIncludes.php";
tvtest.php:18: //Return all tv shows relating to the given input
tvtest.php:19: // $showinfo = $Client->TVMaze->search("Arrow");
tvtest.php:21: //Return the most relevant tv show to the given input
tvtest.php:23: // Array [0] contains general info about the show
tvtest.php:29: // print_r($showinfo);
tvtest.php:30: // Array [1] contains all episode information
tvtest.php:32: //
tvtest.php:33: // // print_r($showinfo[1]);
tvtest.php:37: // print_r($innerArray);
tvtest.php:40: // echo "<p>Key:$key</p>";
tvtest.php:41: // echo "<p>Value:$value</p>";
tvtest.php:47: // print "<p>Season:".$season." Episode:".$episode."</p>";
tvtest.php:57: // print $showinfo[1]['season']
tvtest.php:58: // $tmpArray = $showinfo[1];
tvtest.php:59: // foreach ($tmpArray as $innerArray) {
tvtest.php:60: // print $innerArray['season'];
tvtest.php:61: // }
tvtest.php:65: // print_r($showinfo[0]->[summary]);
我怎麼會對此做錯誤的方式?我需要的是要匹配這樣的只行:
tvshowcarousel.php:54: <li><a href="//www.tv.com" target="_blank">TV.com</a></li>
torcontrol.php: curl_setopt($ch,CURLOPT_URL,"//".$this->host."/gui/?action=forcestart".$hashes);
總之,這個問題:設計一個grep的查詢到行內找到//
,而不是開頭的行(之前不包括任何空格)
你的第一個'grep'是添加的文件名(如:'tvtest.php:61:'),所以第二'grep'看不到以空格開頭的行。 –
哦!好的趕上!所以我只需要'-h'選項 – Droidzone
你的問題陳述不清楚。聽起來你正在以艱難的方式做事。除'curl'查詢外,您想要將'http://'更改爲'//',是的?但是,「curl」查詢URL與其他URL有什麼區別?你從未提到過。 – Gene