Bryde ord adskilt af mellemrum til nye linjer med sed på Mac OS X: En guide

Hvordan kan man bryde ord adskilt af et enkelt mellemrum op i separate linjer ved hjælp af sed på Mac OS X, og hvad betyder \'$' /g' i denne sammenhæng?

For at bryde ord adskilt af et enkelt mellemrum op i separate linjer på Mac OS X, kan du bruge kommandoen `echo "ord1 ord2 ord3" | sed 's/ / /g'`, hvor `'$' /g'` betyder, at alle mellemrum erstattes med en ny linje.

Hvordan kan man bryde ord adskilt af et enkelt mellemrum op i separate linjer ved hjælp af sed på Mac OS X, og hvad betyder '$' /g' i denne sammenhæng?

For at bryde ord adskilt af et enkelt mellemrum op i separate linjer ved hjælp af sed på Mac OS X, kan du bruge følgende kommando:

echo "ord1 ord2 ord3" | sed 's/ /
/g'

Her er en trin-for-trin forklaring af kommandoen:

  • echo "ord1 ord2 ord3": Dette er inputstrengen, hvor ordene er adskilt af mellemrum.
  • |: Pipe-operatoren bruges til at sende output fra echo kommandoen som input til sed kommandoen.
  • sed 's/ / /g': Dette er sed kommandoen, der udfører erstatningen.

Forklaring af sed kommandoen:

  • s/ /\ /g: Dette er en sed erstatningskommando.
  • s: Står for "substitute" (erstat).
  • / /: Mellemrumstegnet, som vi ønsker at erstatte.
  • /\ /: Erstatningsstrengen, som er en ny linje karakter. Bemærk, at vi bruger dobbelt backslash (\\) for at undgå, at sed fortolker det som en escape-sekvens.
  • /g: Global flag, som betyder, at erstatningen skal ske for alle forekomster af mellemrum i inputstrengen.

Betydningen af '$' /g':

  • $' ': Dette er en speciel syntaks i Bash, der tillader brug af escape-sekvenser som newline ( ). Det betyder, at $' ' repræsenterer en ny linje karakter.
  • /g: Global flag, som nævnt tidligere, betyder, at erstatningen skal ske for alle forekomster.

Således vil kommandoen echo "ord1 ord2 ord3" | sed 's/ / /g' resultere i:

ord1
ord2
ord3