GNU/Linux >> Linux Esercitazione >  >> Linux

comando sed con l'opzione -i non riuscita su Mac, ma funziona su Linux

Credo che su OS X quando usi -i sia richiesta un'estensione per i file di backup . Prova:

sed -i .bak 's/hello/gbye/g' *

Utilizzo di GNU sed l'estensione è opzionale .


Se usi il -i opzione è necessario fornire un'estensione per i backup.

Se hai:

File1.txt
File2.cfg

Il comando (notare la mancanza di spazio tra -i e '' e il -e per farlo funzionare su nuove versioni di Mac e su GNU):

sed -i'.original' -e 's/old_link/new_link/g' *

Crea 2 file di backup come:

File1.txt.original
File2.cfg.original

Non esiste un modo portatile per evitare di creare file di backup perché è impossibile trovare una combinazione di comandi sed che funzioni su tutti i casi:

  • sed -i -e ... - non funziona su OS X in quanto crea -e backup
  • sed -i'' -e ... - non funziona su OS X 10.6 ma funziona su 10.9+
  • sed -i '' -e ... - non funziona su GNU

Nota Dato che non esiste un comando sed funzionante su tutte le piattaforme, puoi provare a utilizzare un altro comando per ottenere lo stesso risultato.

Ad esempio, perl -i -pe's/old_link/new_link/g' *


Linux
  1. Sostituisci le virgolette intelligenti con il comando sed di Linux

  2. Comando Tee Linux con esempi

  3. Come utilizzare il comando Sed in Linux con esempi

  4. Comando testa di Linux con esempi

  5. Esiste un comando linux come mv ma con regex?

Comando IP Linux con esempi

Comando Tr in Linux con esempi

15 Comando Linux ps con esempi

Comando CD Linux con esempi

Comando Linux watch con esempi

Utilizzo del comando Linux sed con esempi