GNU/Linux >> Znalost Linux >  >> Linux

Jaký je správný způsob vložení karty do sed?

Jak říká většina odpovědí, pravděpodobně doslovné tab char je nejlepší.

info sed říká „\t is not portable. " :

...
'\CHAR'
    Matches CHAR, where CHAR is one of '$', '*', '.', '[', '\', or '^'.
    Note that the only C-like backslash sequences that you can
    portably assume to be interpreted are '\n' and '\\'; in particular
    '\t' is not portable, and matches a 't' under most implementations
    of 'sed', rather than a tab character.
...

Můžete jednoduše použít sed i příkaz správně:

some_command | sed '1i\
text    text2'

kde je, jak doufám, zřejmé, tabulátor mezi 'text' a 'text2'. Na MacOS X (10.7.2), a tedy pravděpodobně i na jiných platformách založených na BSD, jsem mohl použít:

some_command | sed '1i\
text\ttext2'

a sed přeložil \t na kartu.

Pokud sed nebude interpretovat \t a vkládání tabulátorů na příkazový řádek je problém, vytvořte skript shellu pomocí editoru a spusťte tento skript.


Za předpokladu, že bash (a možná budou fungovat i jiné shelly):

some_command | sed $'1itext\ttext'

Bash zpracuje escape, jako je \t , uvnitř $' ' před předáním jako arg do sed.


Linux
  1. Jaký je nejbezpečnější způsob, jak vyprázdnit adresář v *nix?

  2. Jaký je správný způsob použití inotify?

  3. Jaké jsou rozdíly mezi grep, awk a sed?

  1. Jak vložit text na začátek souboru?

  2. Jaký je nejlepší způsob, jak se naučit SELinux?

  3. Jaký je nejrychlejší způsob odstranění všech souborů a podsložek v adresáři?

  1. Co je to souborový systém NSFS?

  2. Co je zlatý linker?

  3. Jaký je nejlehčí způsob renderování grafiky Gentoo?