Domanda

Come abbinare una singola offerta in sed se l'espressione è racchiuso tra virgolette singole:

sed -e '...'

Per esempio necessario per corrispondere a questo testo:

'foo'
È stato utile?

Soluzione

È possibile utilizzare:

"texta'textb" (APOSTROPHE inside QUOTATION MARKs)

o

'texta'\''textb' (APOSTROPHE text APOSTROPHE, then REVERSE SOLIDUS, APOSTROPHE, then APOSTROPHE more text APOSTROPHE)

Ho usato il carattere unicode nomi.INVERSIONE di SOLIDUS è più comunemente noto come barra rovesciata.

In quest'ultimo caso, si chiude il apostrofo, quindi shell-il tuo preventivo di apostrofo con una barra rovesciata, quindi aprire un altro apostrofo per il resto del testo.

Altri suggerimenti

Come indicato nei commenti alla domanda, non è realmente circa sed, ma come includere una citazione in una stringa tra virgolette in una shell (ad es.bash).

Per chiarire una precedente risposta, è necessario sfuggire alla citazione con una barra rovesciata, ma non si può fare all'interno di un singolo citato espressione.Dalla man page di bash:

Racchiudere caratteri tra apici conserva il valore letterale di ogni personaggio all'interno di virgolette.Un singolo citazione non può verificarsi tra il singolo citazioni, anche quando è preceduta da un barra rovesciata.

Pertanto, è necessario terminare la citata espressione, inserire sfuggito il preventivo, e di iniziare una nuova citato espressione.La shell preventivo per la rimozione di non aggiungere spazi extra, quindi in effetti si ottiene la concatenazione di stringhe.

Quindi, per rispondere alla domanda originale di come singolo citare l'espressione 'pippo', si potrebbe fare qualcosa di simile a questo:

sed -e '...'\''foo'\''...'

(dove " ... " è il resto della sed espressione).

Nel complesso, per i motivi di leggibilità, si sarebbe molto meglio cambiare circostanti a doppie, se possibile:

sed -e "...'foo'..."

[Come un esempio delle potenzialità di manutenzione incubo del primo (apice singolo) approccio, nota come StackOverflow l'evidenziazione della sintassi colori, le quotazioni, le barre rovesciate e altro testo, non è sicuramente corretto.]

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top