Wie die meisten Antworten sagen, wahrscheinlich wörtlich tab
char ist der beste.
info sed
sagen "\t ist nicht portabel. " :
...
'\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.
...
Sie können einfach den sed
verwenden i
Befehl richtig:
some_command | sed '1i\
text text2'
wo, wie ich hoffe, es ist offensichtlich, ein Tabulator zwischen 'text' und 'text2' ist. Unter MacOS X (10.7.2) und daher wahrscheinlich auch auf anderen BSD-basierten Plattformen konnte ich Folgendes verwenden:
some_command | sed '1i\
text\ttext2'
und sed
übersetzte den \t
in eine Registerkarte.
Wenn sed
interpretiert \t
nicht und das Einfügen von Tabulatoren in der Befehlszeile ein Problem darstellt, erstellen Sie ein Shell-Skript mit einem Editor und führen Sie dieses Skript aus.
Angenommen bash (und vielleicht funktionieren auch andere Shells):
some_command | sed $'1itext\ttext'
Bash verarbeitet Escapezeichen wie \t
, innerhalb von $' '
bevor es als arg an sed übergeben wird.