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.