2017-03-08 3 views
1

Ich versuche, einige Zeilen in einer Textdatei zu finden, die mit nur einem (+) beginnen.Bash Scripting: Wie Linien zu finden beginnen mit einem Zeichen?

meine Datei:

--- 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);} 

gewünschte Ausgabe:

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

Ich benutze grep '^+' aber Ausgang ist:

+++ 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

Angenommen, Sie möchten Zeilen auswählen, die mit einem einzelnen Plus beginnen (nicht zwei oder mehr Pluszeichen), dann 'grep '^ + [^ +]' ...'? Es sei denn, Sie möchten Zeilen, die nur ein Plus enthalten: 'grep -E '^ + ([^ +] | $)' ...' –

Antwort

1

Sie verwenden können:

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')) { 

Regex ^+[^+] entspricht + beim Start gefolgt von allem außer + und gibt Ihnen somit die erwartete Ausgabe.