2017-03-08 48 views
1

我正試圖在只有一個(+)開頭的文本文件中找到一些行。Bash腳本:如何查找以一個字符開頭的行?

我的文件:

--- step31.php 2017-03-10 18:34:59.430949110 +0330 
+++ step32.php 2017-03-10 18:34:59.430949110 +0330 
@@ -1,6 +1,6 @@ 
<?php 
defined('_JEXEC') or die; 
-JLoader::register('BannersHelper', JPATH_COMPONENT . '/helpers/banners.php'); 
+JLoader::register('BannersHelper', JPATH_ADMINISTRATOR . '/components/com_banners/helpers/banners.php'); 
class BannersViewBanner extends JViewLegacy{ 
    protected $form; 
    protected $item; 
@@ -32,7 +32,7 @@ 
      JToolbarHelper::save2copy('banner.save2copy');} 
     if (empty($this->item->id)) { 
      JToolbarHelper::cancel('banner.cancel');} else { 
-   if ($this->state->params->get('save_history', 0) && $user->authorise('core.edit')) { 
+   if ($this->state->params->get('save_history', 0) && $canDo->get('core.edit')) { 
       JToolbarHelper::versions('com_banners.banner', $this->item->id);} 

所需的輸出:

+JLoader::register('BannersHelper', JPATH_ADMINISTRATOR . '/components/com_banners/helpers/banners.php'); 
+   if ($this->state->params->get('save_history', 0) && $canDo->get('core.edit')) { 

我用grep '^+'但輸出是:

+++ step32.php 2017-03-10 18:34:59.430949110 +0330 
+JLoader::register('BannersHelper', JPATH_ADMINISTRATOR . '/components/com_banners/helpers/banners.php'); 
+   if ($this->state->params->get('save_history', 0) && $canDo->get('core.edit')) { 
+2

假設你想選擇以單加(不是兩個或更多的加號)開始的行,那麼'grep'^ + [^ +]'...'?除非你想要只包含一個加號的行:'grep -E'^ +([^ +] | $)'...' –

回答

1

您可以使用:

grep '^+[^+]' file 

+JLoader::register('BannersHelper', JPATH_ADMINISTRATOR . '/components/com_banners/helpers/banners.php'); 
+   if ($this->state->params->get('save_history', 0) && $canDo->get('core.edit')) { 

正則表達式^+[^+]將在起始處匹配+,之後是除+之外的任何值,從而爲您提供預期輸出。

相關問題